1.设计模式之间的对比
    首先,设计模式包含了23种模式,23种模式可以分为三大类型,分别为创建型、结构型和行为型,创建型用来创建对象;结构性用来表示类和对象之间的结构;行为型用来描述算法和对象职责间的分配。

    23种设计模式的对比和总结 - 图1

    - 创建 结构 行为
    描述 在软件工程中,创建型模式是处理对象创建的设计模式,试图根据实际情况使用合适的方式创建对象。基本的对象创建方式可能会导致设计上的问题,或增加设计的复杂度。创建型模式通过以某种方式控制对象的创建来解决问题。 创建型模式由两个主导思想构成。 将系统使用的具体类封装起来; 隐藏这些具体类的实例创建和结合的方式。 结构型模式主要是用于处理类或者对象的组合,它描述了如何来类或者对象更好的组合起来,是从程序的结构上来解决模块之间的耦合问题 行为型模式主要是用于描述类或者对象是怎样交互和怎样分配职责的。 它涉及到算法和对象间的职责分配,不仅描述对象或者类的模式,还描述了他们之间的通信方式,它将你的注意力从控制流转移到了对象间的关系上来。 行为型类模式采用继承机制在类间分派行为,而行为型对象模式使用对象复合而不是继承。
    Factory Method 工厂方法 Adapter Class 适配器 Interprepter 解释器 Template Method 模板方法
    对象 Simple Factory 简单工厂 Abstract Factory 抽象工厂 Builder 建造者 Protorype 原型 Singleton 单利 Adapter Object 适配器 Bridge 桥接 Composite 组合 Decorator 装饰器 Facade 外观 Flyweight 享元 Proxy 代理 Chain of Reponsibility 责任链 Command 命令 Iterator 迭代器 Mediator 中介者 Memento 备忘录 Observer 观察者 State 状态 Strategy 策略 Visitor 访问者

    2.各模式使用于什么情况

    那么多的模式,什么情况下是用哪种模式,需要对每一个模式透彻理解后才能做出相应的决定。这么多模式,不断使用、不断重复会对它们有充分的了解。

    23种设计模式的对比和总结 - 图2

    3.总结
    每一个模式都有各自的优缺点,在什么情况下使用什么模式,虽然很多模式理解的还不透彻,但是这是一个长期学习的过程,在学习中也会不断地用到各种模式,以后就可以熟练掌控。