(五)、生成器模式(建造者模式)
1、实现思维:将一个复杂的构建与其表示形式相分离。使得同样的构建过程可以创建不同的表示。
2、实例:
建造者模型(抽象类):
具体建造者1:具体建造者2:
最终产品:指挥者:
客户端调用:
3、性能优缺:使得建造的代码与表示代码分离。构造者隐藏了产品的内部组合,如改变了产品的内部表示,则只需重新定义一个建造者就行。
(六)原型模式
1、实现思维:通过将一个原型对象传给一个要发动创建的对象,此对象通过请求原型对象拷贝他们自己来实施创建。
.Net中只要实现ICloneable接口的clone方法即可达到原型模型。
2、实例:
原型类:
使用实现:
结果截图:
3、性能优缺:
浅拷贝与深拷贝以及实现ICloneable接口的区别:
浅:只是单纯的对被复制对象成员的复制。不涉及被复制对象成员的成员。
深:把引用对象的变量指向复制的新对象,而不是原有的被引用的对象;对被复制对象成员的成员也进行了Clone()操作。
接口实现:在初始化信息不变的情况下,该方法最佳,它既隐藏了对象创建的细节,又对性能大大的提高。它不需要重新初始化对象,而是动态的获得对象运行时的状态。、
(七)桥接模式
1、实现思维:将类的接口与他的实现分离,无需修改客户端代码即可改或者替换实现过程。
用意(目录):将抽象化与实现化脱耦,使得二者可独立改变。
脱耦:将抽象化与实现化的强关联改换成弱关联。
(合成/聚合复用原则在此处的体现)
2、实例:
用不同的画笔画出不同颜色的痕迹
类关系图:
父类颜色:
子类颜色1:子类颜色2:
父类画笔
子类画笔1:子类画笔2
使用实现:
3、性能优缺:
桥接模式很好的体现了“开放-封闭原则”和组合/聚合复用原则,而不是继承这2个面向对象的原则。
能力有限,有错之处,万望指出,非常感谢!
本文从百度空间搬家到博客园。