常用设计模式汇总说明

软件编程原则

1.单一职责原则  2.开闭原则(对扩展开,对修改闭) 3.里氏替换原则(子类型能完全替换基类) 4.依赖倒置原则(抽象不应该依赖细节,细节应该依赖抽象) 5.接口隔离原则(不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于他所在的类层次结构)


 创建型模式(对象的创建和使用分离)

  1.工厂模式:(解耦、职责分离)

    1.1. 简单工厂模式:根据入参创建对应实例(违背开闭原则)

    1.2.工厂方法模式:具体创建实例交由具体工厂子类实现(扩展时,需要创建的类较多)

    1.3.抽象工厂:一个工厂类可以创建多个不同类型的实例(违背开闭原则、违背单一职责原则)

  2.建造者模式:分步建造一个完整实例

  3. 单例模式:整个上下文有且仅有一个实例

  4.原型模式:通过clone复用实例

结构型模式

  类结构型模式:一般基于继承和实现实现类的组合

  对象结构型模式:一般基于组合和关联实现对象的组合

    1.适配器模式:通过适配(被适配类不可修改)实现类的复用(加深调度栈)

    2.桥接模式:通过实现和抽象的分离实现桥接,是一种对象结构模式。更多是在架构初期使用。(加大编程复杂度)

     3.装饰模式:通过装饰类动态地为目标类增加额外职责

    4.外观模式:系统入口有且只有一个(该入口会成为瓶颈)

    5.享元模式:通过共享实现对象复用。构成有享元工厂、享元池

    6.代理模式:通过代理实现对目标类的控制

    7.组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构

 行为型模式

  类行为型模式:

  对象行为型模式:

    1.命令模式:通过封装命令,实现请求命令与执行命令的解耦

    2.中介者模式:对象之间的通信通过中介者中转而不是直接通信(中介者会成为瓶颈,实现难度大)

    3.观察者模式:一个实例状态发生改变时,其相关依赖对象会被通知自动更新。构成有:观察者、观察目标(观察目标会成为瓶颈)

    4.状态模式:通过改变实例的状态改变其行为

    5.策略模式:封装可互相替换的策略

   6.责任链模式:链条上的每个实例都有机会处理链条上的数据

    7.解释器(解析)模式:

    8.迭代模式:

    9.备忘录模式:

    10.模板方法模式:基类定义实现模板,子类实现各自的逻辑

    11.访问者模式:算法和数据结构分离

原文地址:https://www.cnblogs.com/imaikce/p/12035808.html