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

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

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

2、实例:

建造者模型(抽象类):


 

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



最终产品:指挥者:



 

 

客户端调用:

 


 

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

 

(六)原型模式

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

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

2、实例:

原型类:

 




 

 

 

 

使用实现:


 

 

结果截图:


 

 

3、性能优缺:

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

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

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

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

(七)桥接模式

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

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

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

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

2、实例:

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

 

类关系图:



 

 

父类颜色:

 

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



父类画笔

 

子类画笔1:子类画笔2

 



 

使用实现:

 

3、性能优缺:

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

 

 

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

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

posted @ 2012-05-21 05:36  提灯寻影~  阅读(232)  评论(0编辑  收藏  举报