创建型模式:
1.单例模式:全局只能创建一个对象。
二十三种设计模式(一)单例模式_Springlighteve的博客-优快云博客
2.工厂方法模式:通过工厂生产同一种类的不同对象,便于同一类对象的纵向扩展。
3.抽象工厂模式:通过抽象工厂生产同一生产线上的不同类对象的组合对象,是多类对象组合的横向扩展。
二十三种设计模式(二,三)工厂模式(工厂方法模式与抽象工厂模式)_Springlighteve的博客-优快云博客
4.建造者模式:将复杂对象分解为一个一个子对象再进行组合创建。
二十三种设计模式(四)建造者模式_Springlighteve的博客-优快云博客
5.原型模式:当需要大量同样的对象时为了避免内存消耗而直接进行对象克隆。
二十三种设计模式(五)原型模式_Springlighteve的博客-优快云博客
结构型模式:
6.适配器模式:多个独立系统之间为了进行数据交互需要创建适配器对外部数据进行数据模型转换
二十三种设计模式(六)适配器模式_Springlighteve的博客-优快云博客
7.装饰器模式:对系统已有对象功能的增强行为(纵向扩展新方法)。
二十三种设计模式(七)装饰者模式_Springlighteve的博客-优快云博客
8.代理模式:对系统已有对象功能行为的增强处理(横向扩展系统已有方法)。
二十三种设计模式(八)代理模式_Springlighteve的博客-优快云博客
9.门面模式:将系统对外交互的功能统一交给一个门面类完成。
二十三种设计模式(九)门面模式_Springlighteve的博客-优快云博客
10.桥梁模式:将抽象和实例分离使得抽象属性和实例属性可以独立扩展
二十三种设计模式(十)桥梁模式_Springlighteve的博客-优快云博客
11.组合模式:将系统以从属关系抽象成一棵统一的树结构,使得其它系统对整个树型结构的所有对象的使用具有一致性。
二十三种设计模式(十一)组合模式_Springlighteve的博客-优快云博客
12.享元模式:对于频繁使用的相同对象,为了减少内存开支而提前缓存以备复用,从而减小对象频繁创建销毁带来的内存开销。
二十三种设计模式(十二)享元模式_Springlighteve的博客-优快云博客
行为型模式:
13.策略模式:同一类事物同一方法的不同实现
二十三种设计模式(十三)策略模式_Springlighteve的博客-优快云博客
14.模板方法模式:父类将方法流程确定好,并开放部分抽象方法交给子类实现。
二十三种设计模式(十四)模板方法模式_Springlighteve的博客-优快云博客
15.观察者模式:通过组合的方式在对象中植入间谍,并在对象特殊行为触发同时也触发间谍行为通知并所有观察者。
二十三种设计模式(十五)观察者模式_Springlighteve的博客-优快云博客
16.迭代器模式:数据容器为了遍历通常都要对外提供的迭代器便于用户使用
二十三种设计模式(十六)迭代器模式_Springlighteve的博客-优快云博客
17.责任链模式:系统应对不同类请求有不同的处理方式时,为了便于扩展,将每一个处理方式都做成节点独立起来放在一条链上。处理时按照链条节点顺序依次处理,按照处理结果决定是否继续走下一个节点。
二十三种设计模式(十七)责任链模式_Springlighteve的博客-优快云博客
18.命令模式:将特定的执行动作组包装成一个命令便于调用
二十三种设计模式(十八)命令模式_Springlighteve的博客-优快云博客
19.备忘录模式:系统快照,便于异常恢复
二十三种设计模式(十九)备忘录模式_Springlighteve的博客-优快云博客
20.状态模式:当系统对象因不同的系统某属性状态而导致不同行为时,将状态抽离出去单独扩展,从而与系统对象解耦。
二十三种设计模式(二十)状态模式_Springlighteve的博客-优快云博客
21.访问者模式:一个本身固定的系统将规则定义好交给外部访问者。由访问者自己实现。
二十三种设计模式(二十一)访问者模式_Springlighteve的博客-优快云博客
22.调停者模式:系统内部的管理员,所有成员均与管理员交互。
二十三种设计模式(二十二)调停者模式_Springlighteve的博客-优快云博客
23.解释器模式:将具有一定规律性的问题抽象成一个独立处理的系统,并开发一个解释器用于外部与系统的交互