设计模式(十五)组合模式

组合模式 组合模式的几个角色: Component 抽象构建角色。 定义参加组合对象的共有方法 和属性。 Leaf叶子构件。 叶子对象,其下没有其他的分支。 Composite 树枝构件。 树枝对象,他的作用是组合树枝节点和叶子节点形成一个树形结构。 public abstr...

2018-07-28 19:31:35

阅读数:31

评论数:0

设计模式(十四)迭代器模式

迭代器模式也是非常简单的一个设计模式。 是java天生支持的,建议多看看Iterator 接口。 顺便插一句Iterator 和Iterable两个接口的区别。 实现Iterable 需要实现iterator()方法,该方法返回一个Iterator类型实例 实现Iterator 需要实现hasNe...

2018-07-28 19:31:16

阅读数:29

评论数:0

设计模式(十三)适配器模式

适配器模式,也叫变压器模式,或者包装模式。装饰器也是包装模式。 适配器模式是完成不同类之间转换的。适配器继承要转换的源角色,实现目标角色的接口。 适配器模式的几个角色: Target 目标角色。 该角色是希望转变的目标接口。 Adaptee 源角色。 想把谁转变成目标角色,谁就是源角色。 它是...

2018-07-28 19:30:56

阅读数:41

评论数:0

设计模式(十二)策略模式

策略模式 策略模式比较简单。 定义一组算法,并将算法封装起来。策略模式使用的是面向对象的继承和多态机制。 策略模式有三个角色: context 封装角色。 它也叫做上下文角色,起承上启下的作用,屏蔽高层模块对策略,算法的直接访问。 Strategy抽象策略角色。 策略,算法家族的抽象,通常为接...

2018-07-28 19:30:35

阅读数:21

评论数:0

设计模式(十一)装饰者模式

装饰者模式: 基本类图: 装饰者模式就是对基础组件进行修饰,装饰者和被装饰者通过继承的方式拥有共同结构,同时被装饰者作为装饰者的一个属性。 这样就可以像代理模式一样,去达到增强component的一些功能。 装饰者模式也不一定要通过继承,同样可以通过接口实现来表达。 public abstrac...

2018-07-28 19:29:06

阅读数:21

评论数:0

设计模式(十)责任链模式

责任链模式类图: 责任链模式的优点 将请求和处理分开。 请求者可以不用知道是谁处理的,处理者可以不用知道请求的全貌。适合用于无状态bean 责任链模式的缺点 性能问题。每个请求都是从链头遍历到链尾,当然这个也有解法,就是不要使用递归,而是采用循环,并且设置退出标志位。 注意点 责任链中的...

2018-07-28 19:28:47

阅读数:18

评论数:0

设计模式(九)命令模式

命令模式场景: 当不同需求需要不同的实例进行执行,或者一个需求需要不同实例共同合作执行,但是需求者不太想和具体的实现者一一打交道,就可以把需求封装成一个命令,把命令传给一个执行者,执行者接到命令后,执行命令,并把具体的如何执行交给具体的命令本身。 具体的命令本身具体组合实际执行者,编排流程等。 命...

2018-07-28 19:28:21

阅读数:21

评论数:0

设计模式(八)中介者模式

中介者模式,主要是为了避免网状结构,从而抽出一个中介者,降低系统复杂度。一个对象要和N多个对象交流,就是网状结构。 如果所有的类都和中心交流就简化了网络的复杂度. 中介者模式的优点 把1对多依赖变成1对1 依赖, 同事类只依赖中介者,减少了依赖,同时也降低了类间的耦合 中介者模式的缺点 中介...

2018-07-28 19:27:59

阅读数:14

评论数:0

设计模式(七)原型模式

原型模式。 原型模式的场景如下: 有一个需求,需要发送个性化电子账单。或者一个祝福语,也就是说除了姓名不一样,其他不部分很可能一样。针对这种场景,如果采用单线程,每一个用户20ms的时间,如果上100万人,需要发送时间为 2ws=200/36小时。如果设计8:00收到,那么可能最后一个人到下午2点...

2018-07-28 19:27:35

阅读数:15

评论数:0

设计模式(六)代理模式

普通代理,强制代理,动态代理,应用场景,延迟加载

2018-07-28 19:27:02

阅读数:14

评论数:0

设计模式(五) 建造者模式

建造者模式使用的场景: 不同的执行顺序,产生不同的事件结果。 多个部件或零件,都可以装配到一个对象中,但产生的运行结果不同 产品类非常负责,产品类中不同调用顺序不同,产生了不同的效能。 和工厂模式不同的是: 建造者模式关注的是零件类型和装配工艺,工厂更关心创建不关心组装。 相同:都是创...

2018-07-07 16:59:19

阅读数:22

评论数:0

设计模式(四) 模板方法模式

模板方法模式:模板方法模式包括: 基本方法 基本方法由子类负责实现 模板方法 模板方法负责调度基本方法

2018-07-07 16:54:05

阅读数:17

评论数:0

设计模式(三) 抽象工厂模式

抽象工厂模式: 就是对产品进行分族,一个工厂生产对应的产品族,比如男性工厂,女性工厂,产品族是具有某些特性的一类产品,比如女人、女人分黄种人,白种人,黑种人,这个意思。 再比如,某个工厂生产玩具,有适合0-3岁儿童的一系列玩具(塑料汽车,塑料小飞机),还有适合6-10岁的玩具,小自行车,游戏机等...

2018-07-07 16:50:30

阅读数:16

评论数:0

设计模式(二)工厂模式

工厂模式有一个满足扩展方式的核心点是,利用反射把具体的产品封装起来,这样扩展的时候,不需要修改具体的工厂,只需要添加对应的产品类可以了。 工厂模式核心: 工厂模式满足开闭原则,实现动态扩展,而不用修改代码的实现方式是利用反射,把要创建的产品类作为参数传进去,然后进行生产。 public a...

2018-07-07 15:17:09

阅读数:30

评论数:0

设计模式(一) 单例模式

单例模式: 单例模式的写法: 1. 饿汉模式 public class Singleton{ private static Singleton instance=new Singletion(); private Singleton(){} public sta...

2018-07-07 14:56:20

阅读数:34

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭