![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Head First设计模式
文章平均质量分 56
春秋战国灞桥游
技术改变生活。
展开
-
五、单件模式
经典单件 public class Singleton { private static Singleton uniqueInstance; private Singleton() {} public static Singleton getInstance() { if (uniqueInstance == null) { uniqu原创 2017-02-18 10:28:50 · 341 阅读 · 0 评论 -
六、命令模式
定义 命令模式:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。UML图 说明:Invoker 是命令的执行者,通过调用Command中的execute()方法执行命令。 Receiver 是一个接收者,接收着定义了一系列可以执行的动作。 ConcreteCommand 是由抽象的Command派生出来的,实现了Command定义的exe原创 2017-02-18 13:23:23 · 368 阅读 · 0 评论 -
三、装饰者模式
定义:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 个人理解 1、装饰者存在两个重要的组成部分,需要被装饰的组件(被装饰者)和装饰者抽象。每个装饰者需要持有一个组件,也就是说,装饰者需要持有Component抽象的引用。 2、装饰者和被装饰者必须是一样的类型也就是要有共同的超类,这是装饰者模式的关键。(因为装饰者必须要能取代被装饰者) 3、在以上 的类图中原创 2017-02-19 18:29:44 · 174 阅读 · 0 评论 -
七、适配器模式
1. 定义 适配器模式:将一个类的接口,装换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 2. UML类图 说明: 1、客户看到的是目标接口。 2、适配器与被适配者组合。 3、适配器实现目标接口。 4、所有的请求都委托给配适配者。 装饰者和适配器模式对比 适配器 装饰者 说明: 1、原创 2017-02-19 14:57:36 · 192 阅读 · 0 评论 -
八、模板方法模式
定义 模板方法模式:在一个方法中定义一个算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。UML类图 说明: 1、AbstractClass抽象中包含了模板方法,primitiveOpration1() 和primitiveOpration2() 是这个模板方法所用到的操作的抽象版本。 2、模板方法在实现算法的过程中,用到原创 2017-02-19 21:49:22 · 210 阅读 · 0 评论 -
四、工厂模式
1. 简单工厂一个实现了简单工厂的UML类图:(简单工厂) 说明: 1、客户通过在PizzaStore通过SimplePizzaFactory取得Pizza的实例。 2、SimplePizzaFactory是应用中唯一用到具体Pizza产品的地方 3、Pizza定义为抽象类,具有一些有用的实现(但不是必须的),这些实现也可以被覆盖原创 2017-02-11 16:16:32 · 206 阅读 · 0 评论 -
一、策略模式
定义:策略模式定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。一个使用了策略模式案例的UML类图:(策略模式) 个人见解:策略模式通过封装算法族,使用多态的方式持有FlyBehavevior 和 QuackBehavior 两个算法族的引用。可以动态的设置这两个算法族的引用行为,从而做到在运行时指定FlyBehavior 和 QuackBehavio原创 2017-02-12 14:17:49 · 172 阅读 · 0 评论