设计模式二(建造者、原型、桥接)

来源:互联网 发布:python arma模型 编辑:程序博客网 时间:2024/04/30 18:18

2012-05-20 21:36

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

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

2、实例:

建造者模型(抽象类):


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



最终产品:指挥者:



客户端调用:


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

(六)原型模式

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

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

2、实例:

原型类:




使用实现:


结果截图:


3、性能优缺:

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

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

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

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

(七)桥接模式

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

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

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

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

2、实例:

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

类关系图:



父类颜色:


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



父类画笔


子类画笔1:子类画笔2



使用实现:


3、性能优缺:

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

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

原创粉丝点击