现在的位置: 首页 > 综合 > 正文

设计模式之创建型和结构型

2013年08月20日 ⁄ 综合 ⁄ 共 1120字 ⁄ 字号 评论关闭

 

创建型模式

1、单例模式 :确保类只有一个实例对象。该实例由类自身保存且可通过类的一个方法获取。

2、原型模式:从一个对象再创建另外一个可定制(深复制、浅复制或其它)的对象,而且不需要知道任何创建的细节。

3、建造者模式:一个对象的创建步骤或流程固定而具体的每个步骤(流程)实现有差异时使用的模式。

4、工厂方法模式:对单个工厂和与之对应产品的抽象。抽象的工厂只‘生产’单一类型的抽象的产品。

5、抽象工厂模式:对多个工厂和与之分别对应产品的抽象。抽象的工厂可‘生产’多种类型的抽象的产品。

 

结构型模式

1、代理模式Proxy:为其它对象提供一个代理以控制对这个对象的访问。

PK适配器模式:使用的场合目的不同,适配器模式是为了使新的现有接口兼容方便对原有类的使用。代理模式则无此顾虑它只是为了控制对原有对象的访问。

2、适配器模式Adapter:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作。

3、外观模式Façade:为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加易于使用。

‘适配器的升级版’:整合统一多个不同的接口以达到一致简便的使用它们的目的。

4、享元模式FlyWeight:运用共享技术有效地支持大量细粒度的对象。

当需要实例化很多对象时,通过抽取它们的共同部分、特有部分,以达到共用共同部分以节省资源开销的模式。

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

也是种‘嵌套’,但不同于组合模式:装饰模式有个最底层的‘固定部分‘,‘嵌套’部分是为‘固定部分’进行补充而有层次的添加不同的行为或属性。

问题:‘循环’地装饰。

6、桥接模式Bridge:将抽象部分与它的实现部分分离,使它们可以独立地变化。

通过聚合或组合来达到抽象部分与实现部分的分离。聚合的层次上升为“抽象“的高度,符合了开放封闭原则。

问题:大话设计模式例子中只实现了一对一的关系:。

应该可以实现一对多的关系:一种抽象只聚合或组合另几种抽象。

比如手机品牌还可以聚合手机硬件。

和工厂方法模式的PK:

连接的层次不同,Bridge模式是“抽象“之间的关系vs工厂模式是具体的依赖(一个工厂对应一个产品)。

自己提到一对多的”新桥接模式”对应抽象工厂模式。

7、组合模式Composite:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。

层次嵌套结构的表示:每层都应有的固有部分(叶子)、嵌套部分(枝干)。

问题:嵌套的循环。‘引用环‘,为避免死循环需人工判断。

 

抱歉!评论已关闭.