23种设计模式

设计模式是一套被反复使用,多数人只晓得,经过分类编目的的,代码设计经验的总结。

1:简单工厂模式:建立一个工厂类,对同一接口下的类进行实例化的创建,也就是在工厂类中返回相应的返回值来达到对同意接口下的不同类的调用。

2:抽象工厂模式:即在简单工厂类的基础上,增加了工厂类和接口的数量,即如果要创建新的实例,只需要实现工厂类对应的的接口和和实现类的接口即可,这样极大的提高了程序的拓展性。

3:单例模式:顾名思义在单例模式种只存在一个实例,实力的创建也只进行了一次,具体利用将构造方法私有化的方式,防止多次的实例化的创建,这种模式不仅内存占用少,核心控制也能达到单一化。

4:建造者模式:建造者模式的特点在于,它将多个属性集成在一个类中,实例化的创建不再是单个产品,而是创建对象的多个部分,利用建造者模式实现实例化的创建可以产生一个多属性的复杂对象。

5:原型模式:顾名思义,利用原有的对象,进行复制,克隆,产生一个与原对象相似的新对象,具体操作在于,定义一个接口在实现类中覆写实现类中的复制,克隆方法,实现复制或者克隆。

6:适配器模式:适配器模式在于实现程序接口和用户接口的转换,程序接口不一定满足了用户的需求,此时利用适配器模式将程序接口转换为用户想用的接口来达到用户需求。从类的角度看,只需要创建一个新类继承原来的类实现新的接口即可。

7:装饰模式:顾名思义,即为原有的对象添加新的功能,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。

8:代理模式:代理模式就像名称所说的一样,多创建一个代理类,实现原有类中地方法,同时对实现过程加以控制。

9:外观模式:外观模式通常为了降低类与类之间的耦合度,将具有相同实例的多个类,在另一个类中定义关系,实现了解耦的作用。

10:桥接模式:桥接模式具体是抽象化接口和实现类的分离,主要也是为了程序中各组分间的低耦合度。

11:组合模式:用于表示部分和整体之间的模式。

12:享元模式:像名称所说的一个,是对多个对象的共享,也就是生成一个共享池类,对某一次的的操作属性进行集成,在执行这一次操作时对共享池进行对象调用。这样做的目的极大的减小了内存的开销,和实例的数量(减少了代码量)。

13:策略模式:将不同的算法进行封装,再由用户本事决定算法的使用,也就是在用户接口中由用户来做选择具体调用哪一种算法。

14:模板方法模式:本意是通过对抽象父类的调用实现对子类的调用,具体操作:一个抽象类中,有一个主方法,再定义多个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过对抽象类的调用实现对子类的调用。

15:观察者模式:是类与类之间的关系不涉及类的继承,主要体现在对特定对象的监控,当对象发生变化时,会对需要告知的对象进行通知。

16:迭代器模式:顾名思义,迭代器模式是对集合的对象进行聚集,也就是遍历集合中的对象,然后在另一个类中进行方法的调用,因此迭代器模式的两个要点,一是对对象的遍历,二是迭代器对象,用于其他类对遍历操作的调用。

17:职责链模式:是多个对象之间的调用,一个对象拥有下一个对象的引用时,会产生一种链状关系,请求会逐个向上传递,直到被处理。

18:命令模式:是调用者对被调用者进行命令要求这一过程的解耦,也就是说,调用者,命令(请求),被调用者之间,不必在乎其他组分怎样工作,只要做好自己的部分即可。也就是为命令添加接口,修改命令不会影响调用者和被调用者。

19:备忘录模式:是为原有的类添加一个备忘录类,和存储备忘录的类,存储备忘的类不能修改,而备忘录累的目的在于存储原有类中地对象的某一状态,在需要的时候进行恢复。

20:状态模式:就是在对象的状态改变时,同时改变其行为,往往对象的不同状态都对应着不同的行为。

21:访问者模式:访问者模式就是一种分离对象数据结构与行为的方法,通过这种分离,可达到为一个被访问者动态添加新的操作而无需做其它的修改的效果。

22:中介者模式:顾名思义,为原有的类提供一个中介类,这样的好处也是为了降低耦合度,提高程序拓展性。

23:解释器模式:解释器模式是为不同的算法实现提供了一个统一的接口。

原文地址:https://www.cnblogs.com/wanghao369/p/6664956.html