zoukankan      html  css  js  c++  java
  • 设计模式总结

    设计模式总结

    1、工厂方法模式

          工厂父类负责定义创建产品对象的公共的接口,而工厂子类负责生成具体的产品对象,这样将产品类的实力操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一种具体的产品类。

    2、抽象工厂模式

         提供一个创建一系列的相应或相依赖对象的接口,而无需指定他们具体的类。就是:抽象工厂模式需要面对多个的额产品等级结构,一个工厂等级结构可以负责多个不同产品等级结构中的产品对象的创建。

    3、建造者模式

         目的:由于组合部件的过程较为复杂,因此,将这些部件的组合过程往往被外部化到一个称作建造者的对象里,建造者返还给客户端是一个完整的对象,而无需关心该对象包含的属性。

         定义:将一个复杂的对象的构建与他表示分离,使得同样的构建过程可以创建不同的表示。

    4、原型模式

          目的:在软件系统中,有些对象的创建过程非常的复杂,而且有的时候需要频繁的创建,原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后用这个复制的原型对象的办法创建出更多的对象

          定义:对一张对象的创建,用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。

    5、单例模式

          目的:保证一个类只有一个实例并且这个实例易被访问,就是让类自身负责保存它的唯一的实例。

          定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,提供全局访问的办法。(只包含一个类,就是单例类)

    6、适配器模式

          目的:通常的情况下,有的类可以满足客户类的需要,但是它所提供的接口不一定满足所有客户类所期望的,所以设计一个适配器,从中间可以进行转接,从而适合主类。

          定义:将一个接口转换为客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作。

    7、桥接模式

          目的:有些类由于其本身的股友的特性,使得它具有两个或者多个变化维度。为了解决多维度变化的系统,降低复杂度。桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦合,减少了代码的编写量。

          定义:将抽象的部分与他的实现部分分离,使他们都可以独立的变化。

    8、组合模式

          目的:在面向对象的系统中,我们会遇到这种具有“容器”特征的对象——即他们自充当普通对象的同时,又可作为其他对象的容器。

          定义:组合多个对象形成树形,以表示整体-部分的结构层次。

    9、装饰模式

          目的:装饰模式可以在不改变一个对象本身的基础上给对象增加额外的新行为。

          定义:动态的给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类更加的灵活。

    10、外观模式

          目的:我们在做什么的时候,需要和多个对象打交道,我们所打交道的对象的人也会不同,我们就会需要不一样的外观。

          定义:外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一个子系统更加的容易使用,就像是文件的加密一样。

    11、享元模式

         定义:运用共享技术有效的地支持大量细粒度对象的复用,就是说对一些的向具有相同的元素的时间进行相同信息的调用。

    12、代理模式

         代理模式就是将自己有的东西交给别人去做,就是说给一个对象提供一个代理,并由代理对象控制对原对象的引用。就像:论坛权限控制代理,通过对于钱数的设计更改权限的设计。

    13、职责连模式

          职责链模式就是为了避免请求的发送者与接受者耦合在一起,让多个的随想按着意思那个的顺序连成一条链子,就像学生请假模式,学生请假就要通过班长、导员等等,请不同的时间就会有不同的人签字。通过发送者与耦合者之间进行连接。

    14、命令模式

          命令模式就是将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化。就是使用调用者调用他的请求,通过请求做出相应的响应。就像电视遥控,通过电视遥控器的按钮,在电视机的电视就会做出相应的反映。

    15、解释器模式

         解释器模式就是对自己定义的语言进行解析分析,就相对在电脑中输入3*4/2%4,只有对其进行分析才会形成电脑自己识别的语言,才会进行分析,形成结果。

    16、迭代器模式

        提供了一种方法访问聚合对象,但是不会暴露这个对象的内部表示。就像是电视遥控,可以进行的遍历操作。

    17、中介者模式

        用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示的相互的吸引,就像婚姻中介一样,并不需要知道对象是谁,只需要的通过中介者进行了解就可以了,最后才会进行见面。

    18、备忘录模式

        就是在不破坏封装的前提下,捕获一个对象的内部状态,就是就像word中的撤回就是备忘录的状态,在你写完如果你删除后,其实它还保存这你刚删除的信息,如果你撤回就可以获取相应的信息。

    19、观察者模式

         就是定义对象间的一种一对多的依赖关系,使得当一个对象的状态发生改变的时候,其他的相互依赖的对象得到通知并且自动的更新。就像假设猫与狗之间,如果猫做出了一些的动作,那么狗就会接到通知,作响自己相应的反映。

    20、状态模式

        就是一个对象的在其的内部状态进行改变时,对象看起来似乎修改了它的类,其实就像论坛系统,积分的钱数,就决定了它的级别是什么。

    21、策略模式

        策略模式,就是相当于你去一个地方,然后就会选择相应的方式出去,从中的选择就是策略,就是将一个算法封装起来,并且我们可以更改自己的出行方式。

    22、模板方法模式

        模板方法可以使得不改变一个算法的结构即可重新定义某些特定的步骤,就像点菜单一样,每个饭店的点菜单都差不多,就相当于一个很好的模板。

    23、访问者模式

       访问者模式就是作用于某对象结构中的个元素的操作,就是相当于不同的人对于一件东西都进行访问,但是做出的反映会不同。

  • 相关阅读:
    U1
    std::vector的内存释放
    (转)浅谈PostgreSQL的索引
    PostgreSQL的generate_series函数应用
    linux 里的`反引号
    wireshark抓取本地回环数据包
    linux shell中 if else以及大于、小于、等于逻辑表达式介绍
    c++利用互斥锁实现读写锁
    c++互斥锁的实现
    大小端,"字节序"
  • 原文地址:https://www.cnblogs.com/syhn/p/6665039.html
Copyright © 2011-2022 走看看