设计模式总结篇-创建型&结构型&行为型 区别、联系

一、创建型:

       创建型模式,就是创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。关注的是对象的创建,创建型模式将创建对象的过程进行了抽象,也可以理解为将创建对象的过程进行了封装,作为客户程序仅仅需要去使用对象,而不再关心创建对象过程中的逻辑。

创建型
简单工厂模式 严格意义来说,不属于GOF23种设计模式
工厂方法模式 只对结果负责,封装创建过程
抽象工厂模式  
原型模式 拔一根猴毛,吹出千万个。
单例模式 单例和原型是互斥的  保证独一无二。
创建型模式  

 

二、结构型:

       结构型模式是为解决怎样组装现有的类,设计他们的交互方式,从而达到实现一定的功能的目的。结构型模式包容了对很多问题的解决。例如:扩展性(外观、组成、代理、装饰)封装性(适配器,桥接)

结构型
代理模式(静态代理、动态代理) 找人办事,增强职责。
适配器模式 兼容转换头。
装饰器模式 包装,同宗同源。
桥接模式  
享元模式  
外观(门面)模式  
组合模式  

 

三、行为型:

       行为型模式涉及到算法和对象间职责的分配,行为模式描述了对象和类的模式,以及它们之间的通信模式,行为型模式刻划了在程序运行时难以跟踪的复杂的控制流可分为行为类模式和行为对象模式1.行为模式使用继承机制在类间分派行为2.行为对象模式使用对象聚合来分配行为。一些行为对象模式描述了一组对等的对象怎样相互协作以完成其中任何一个对象都无法单独完成的任务。

模板模式 流程标准化,自己实现定制。
策略模式 用户选择,结果统一。
责任链模式  
命令模式  
迭代器模式 不常用
状态模式  
观察者模式 任务完成时通知。
中介者模式  
备忘录模式  
解释器模式  
访问者模式  

四、差异汇总:

     1、单例模式和工厂模式:

          在实际开发中,一般会把工厂类写成单例模式;

     2、策略模式和工厂模式:

          1)策略模式属于行为模式,工厂模式属于创建型模式;

          2)工厂模式在于封装对象的创建,策略模式在于接收工厂创建的对象,从而实现不同的行为。

    3、策略模式和委派模式:

          1)策略模式是委派模式的一种内部实现形式,策略模式关注的结果是能否相互贴换。

          2)委派模式不是GOF23种设计模式,更多关注分发,调度的过程。

    4、策略模式和模板模式:

          1)策略模式和模板模式都是行为模式;

          2)策略模式与模板模式都有封装算法,策略模式重点是不同的算法之间可以相互贴换,模板模式重点是定义一套流程。

          3)策略模式可以改变算法流程,可以替代代码中的if...else...分支;模板模式不能改变算法的流程。

     5、装饰器模式和静态代理:

          1)装饰器模式强调给对象动态添加方法,而代理更注重控制对 对象的访问。

          2)代理模式和装饰器模式都持有对方的引用,但逻辑处理重心不一样。

     6、装饰器模式和适配器模式:

           1)装饰者模式和适配器模式都是属于包装器模式;

           2)装饰者模式可以实现被装饰者与相同的接口或者继承被装饰者作为它的子类,而适配器和被适配者可以实现不同的接口。

    



 

 

你可能感兴趣的:(GOF23种设计模式)