设计模式小结

1. 单件模式

单件模式是允许一个类有且仅有一个实例的方法。

2. 命令模式

命令模式将每个命令,也就是函数封装为“函数对象”,以便将其以参数的形式传递给其他函数或对象,告诉它们要执行特定的操作。命令模式中所有的“命令”都会被执行。

3. 代理模式

代理模式强调的是“代理”,它只有一个实现类,代理类控制对其实现类的访问。

4. 状态模式

状态模式虽然也有“代理”,但它可以有多个实现类,更多强调的是“状态”的变化,“代理类”动态地改变其实现类。状态模式依据条件的变化,只执行多个状态中的某个状态。

5. 适配器模式

适配器模式通过调整一个库或一段代码的表达方式,来适应另外一个库或具有某一接口的代码。

6. 模版方法模式

模版方法强调的是“不变的代码”和“变化的代码”。“不变的代码”即模版方法,它是驱动程序运行的引擎;“变化的代码”即通过覆盖一个或多函数以便自定义应用程序的代码。

7. 策略模式

与模版方法模式相比,策略模式用组合而非继承实现“变化的代码”,解决了将“变化的代码”从“不变的代码”中分开的问题;

与状态模式相比,策略模式有一个“语境”,类似于状态模式的代理。但策略模式强调的是在运行时进行策略选择,而状态模式由“代理类”动态地改变其实现类。另外,策略模式意在用不同方法解决同一问题(可以想一下商场用不同的优惠方案销售商品),而状态模式是在不同的状态下用不同的方式来应对。

8. 职责链模式

在提出一个请求时,一个链序列中的每个调用都试图满足这个请求。这个过程直到有一个策略成功满足该调用或者到达链序列的末尾才结束。职责链模式强调的是自动在一系的策略中查找能满足请求的策略。

9. 工厂模式

工厂模式强制用一个通用的工厂(factory)来创建对象,而不允许将创建对象的代码散布于整个系统。如果程序中所有需要创建对象的代码都转到这个工厂执行,那么再增加新对象时的所要做的全部工作就是只需修改工厂。

10. 多态工厂模式

每个类都用自己的创建工厂Factory创建自己类型的对象,所有的创建工厂都继承自同一个基类ShapeFactory。

11. 抽象工厂模式

抽像工厂模式看起来和工厂方法很相似,但是他使用若干工厂方法(Factory Method)模式。每个工厂方法模式创建一个不同类型的对象。当创建一个工厂对象时,要决定将如何使用由那个工厂创建的所有对象。

12. 虚构造函数

这种模式是在工厂方法模式基础上的扩展,以实现虚构造函数的机制。

13. 构建器模式

构建器模式和抽象工厂模式主要的区别就就是,构建器模式一步步创建对象。

14. 观察者模式

观察者模式用于解决一个相当常见的问题:当某些其它对象改变状态时,一组对象需要进行相应的更新。

15. 访问者模式

访问者模式允许创建一个独立的类层次结构Visitor而有效地对主类的接口进行扩展,这个独立的类层次结构将主类上的各种操作“虚化”。主类对象仅“接受”访问者,然后调用访问者的动态绑定的成员函数。因此,创建一个访问,并将其传递给主层次结构,便可以获得和虚函数一样的效果。

你可能感兴趣的:(设计模式小结)