首页 > 代码库 > 设计模式总结

设计模式总结

??

          设计模式学习告一段落。一时间有点儿心乱如麻啊真是——剪不断。理还乱!思考了一阵子,也不知道到底该怎样去总结它。

但人还是要活着的,路还是要走的,硬着头皮往前闯。

             细致想想,在学习23个设计模式中,我们始终都在环绕着一个主线在思考代码的布局。那就是六大原则——开放封闭,单一职责,依赖倒转,里氏代换,迪米特法则和合成聚合复用原则。

当然,并非说我们必须遵循每个原则。设计模式中讲究的是一个更优原则。每种原则都有自己的长处,但适用于不同的场合又会有自己的弱势,此时应遵循更优化。

代码的设计仅仅有更好没有最好!

         那么其次。在各个原则的基础上,在面向对象设计的各个类之间是怎样联系起来形成一个完毕的程序代码,在这里靠的是类与类之间的就各种关系,主要包含——关联(聚合。组合)。依赖,继承和实现。那么将这几种关系进一步抽象出来。事实上就是面向对象程序设计语言的特点。

        在我看来,设计模式最核心的东西就是原则和类之间的关系。那么代码之间究竟是如何设计。才可以使得代码的可维护性,可复用性增强,使得代码更加灵活呢?这就是不同设计模式所发挥的作用!

技术分享

接下来。再来看一下23种设计模式之间的关系。教材上把它们分成了3个大类。

一、创建型

   共同点都在为类的实例化即创建对象服务

  各个模式的特点简要的概括例如以下:

技术分享

二、结构型

   共同目标类与对象之间怎样组合形成更大的结构

个人觉得这里更强调的是各个类之间的一种关系。

    在结构型模式中。我觉得有一种最为经典的关系模式,这样的关系,认真观察,它存在于每一种结构型

    模式中。

    如图所看到的:自己给起个名字吧,就叫综合模式,嘿嘿!

     技术分享

结构型各个模式特点简要概括例如以下:

技术分享

在结构型模式中,我们须要注意外观、代理和适配器三种模式之间的关系:

         1.代理——外观

    二者之间似乎非常相似,都存在一个中介来避免了直接与细节的接触。

    可是它们之间有不同之处;

    代理对象代表一个单一对象且它无法直接訪问目标对象。

    而外观对象代表一个子系统且能够直接訪问子系统中的各个对象。

       2.代理——适配器

    这二者之间也都存在一个中间类,可是这个中间类的职责却不同。

    代理是一种原来对象的代表,其它须要与这个对象打交道的操作都是和这个代表交涉。

    而适配器则不须要虚构出一个代表者,仅仅须要为应付特定使用目的。将原来的类进行组合。

    对以上以上关系的理解。结合大话设计模式中的小样例非常easy理解。

三、行为型

    分类根据:涉及到算法和对象间的职责分配,类与对象之间的结构关系,但更加注重描写叙述类与对象之间的通讯联系

    各种模式的简要概括例如以下:

技术分享

事实上。我们能够看出来。每一个设计模式事实上都是依据六大原则进行设计,已达到最优。

以上是对设计模式中各个模式的简要概括,依据自己的理解。非常多可能理解的有偏差,望指正!






设计模式总结