zoukankan      html  css  js  c++  java
  • 设计模式二(建造者、原型、桥接)

    (五)、生成器模式(建造者模式)

    1、实现思维:将一个复杂的构建与其表示形式相分离。使得同样的构建过程可以创建不同的表示。

    2、实例:

    建造者模型(抽象类):


    具体建造者1具体建造者2



    最终产品:指挥者:



    客户端调用:


    3、性能优缺:使得建造的代码与表示代码分离。构造者隐藏了产品的内部组合,如改变了产品的内部表示,则只需重新定义一个建造者就行。

    (六)原型模式

    1、实现思维:通过将一个原型对象传给一个要发动创建的对象,此对象通过请求原型对象拷贝他们自己来实施创建。

    .Net中只要实现ICloneable接口的clone方法即可达到原型模型。

    2、实例:

    原型类:




    使用实现:


    结果截图:


    3、性能优缺:

    浅拷贝与深拷贝以及实现ICloneable接口的区别:

    浅:只是单纯的对被复制对象成员的复制。不涉及被复制对象成员的成员。

    深:把引用对象的变量指向复制的新对象,而不是原有的被引用的对象;对被复制对象成员的成员也进行了Clone()操作。

    接口实现:在初始化信息不变的情况下,该方法最佳,它既隐藏了对象创建的细节,又对性能大大的提高。它不需要重新初始化对象,而是动态的获得对象运行时的状态。、

    (七)桥接模式

    1、实现思维:将类的接口与他的实现分离,无需修改客户端代码即可改或者替换实现过程。

    用意(目录)抽象化实现化脱耦,使得二者可独立改变。

    脱耦:将抽象化与实现化的强关联改换成弱关联。

    合成/聚合复用原则在此处的体现)

    2、实例:

    用不同的画笔画出不同颜色的痕迹

    类关系图:



    父类颜色:

    子类颜色1:子类颜色2:



    父类画笔

    子类画笔1:子类画笔2



    使用实现:

    3、性能优缺:

    桥接模式很好的体现了“开放-封闭原则”和组合/聚合复用原则,而不是继承这2个面向对象的原则。

    能力有限,有错之处,万望指出,非常感谢!

    本文从百度空间搬家到博客园。

  • 相关阅读:
    noip2010 乌龟棋
    noip2010 机器翻译
    noip2009 靶形数独
    noip2009 最优贸易
    noip2009 Hankson的趣味题
    noip2009 潜伏者
    noi2010 能量采集
    八大排序算法(六) 快速排序
    八大排序算法(六) 快速排序
    Lesson 12 Nehe
  • 原文地址:https://www.cnblogs.com/yunanwu/p/4168557.html
Copyright © 2011-2022 走看看