设计模式 《head first 设计模式》

Java43

策略设计模式:strategy pattern

定义了算法族,分别封装起来,让他们之间可以互相替换。

此模式让算法的变化独立于算法的客户类

客户类,以 接口定义实例变量作其域,即,将部分属性 委托给另一个接口管理。 即局部变化独立于其他部分。

该接口有一组实现类,即算法族。由于 面向接口编程,故可使其互相替换。

效果:1.当改变算法族的 实现时,使用该实现的客户类中的属性分别变化,但不影响其他属性。

2.可随时改变客户类中的属性的实现(算法族内替换)。

使用到的设计原则:单一职责 合成复用 依赖倒置

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
Java

单例模式只会懒汉饿汉?读完本篇让你面试疯狂加分

前言 说到设计模式,面试排在第一位的十有八九是单例模式,这一定是大部分人从入门到面试工作都避不开的基础知识。 但单例模式不仅有懒汉模式和饿汉模式两种写法,往往我们掌握的都是最基础的写法,如果你有阅读过...
Java

【Java中的线程】java.lang.Thread 类分析

进程和线程 联想一下现实生活中的例子--烧开水,烧开水时是不是不需要在旁边守着,交给热水机完成,烧开水这段时间可以去干一点其他的事情,例如将衣服丢到洗衣机中洗衣服。这样开水烧完,衣服洗的也差不多了。这...
Java

选择排序

选择排序 原理 第一次从数据中选出最小的元素,放置序列的起始位置([0,n-1]) 第二次从数据中选出最小的元素,放置序列第二个位置([0,n-2]) ... 排序过程 - 原始序列:{7, 1, 3...
Java

M1 MAC 装ubuntu更换镜像源

记录一下今天突发奇想装个ubuntu遇到问题 w镜像源:更换镜像源网上教程基本对的,但要注意机型(ps:m1 mac) 补:很多时候是对问题理解不到位,比如我直接搜索arm ubuntu镜像源 认识有...
Java

0.1 + 0.2 == 0.3 吗?

为什么负数要用补码表示? 负数用补码表示的原因主要是为了统一正数的加法和减法运算。毕竟,数字的加法和减法是一种非常常见的运算。不要搞专业化,试着统一运作。[En]The reason why nega...
Java

期末代码

使用Java的输入输出流将一个文本文件的内容按行读出,每读出一行,就顺序添加行号,并写入到另一个文件中。 ```java import java.io.*; public class E { publ...
Java

JavaSE-时间差

```java public static String getDiffDateStr(Date startTime,Date endTime){ long diff = endTime.getTim...
Java

面向对象3(Java)

即同一方法可以根据发送对象的不同而采用多种不同的行为方式 对象的实际类型已确定,但有许多引用类型可以指向该对象[En]The actual type of an object is determine...
Java

1.某公司笔试SQL题

1.用一条SQL语句查询出每门课都大于80分的学生姓名 name kecheng fenshu 大狗子 语文 81 大狗子 数学 75 二狗子 语文 76 二狗子 数学 90 小狗子 语文 81 小狗...
Java

java集合框架

转载:https://www.cnblogs.com/yangliguo/p/7476788.html 部分修改自其它博主,地址找不到了,望见谅! 集合 集合与数组 数组(可以存储基本数据类型)是用来...
Java

MySQL学习-eclipse导入jar包

导包先有包 !!!一定要下载和自己MySQL版本一样的jar包!!! !!!一定要下载和自己MySQL版本一样的jar包!!! !!!一定要下载和自己MySQL版本一样的jar包!!! 如果没有包,参...