几个常用的结构型设计模式总结

来源:互联网 发布:淘宝大连洲际 编辑:程序博客网 时间:2024/05/10 03:46

1.1配适器模式:解决两个类不兼容的问题,使两个类可以一起工作。

 

         角色:Target(目标抽象类)、Adapter(配适器类)、Adaptee(配适者类)。

 

配适器模式有两种:对象配适器模式和类配适器模式。它们都是Adapter类实现了Target类的接口,不同的是对象配适器模式中Adapter和Adaptee是关联关系,而类配适器中是继承关系。由于Target有可能是一个类,而很多语言不支持多继承,所以类配适器使用受很多限制,大部分情况使用对象配适器。

 

1.2桥接模式:如果软件系统存在两个独立变化的维度,则可以通过该模式将两个维度分离出来,使两者可以独立扩展,让系统更加符合“单一职责”。

 

         角色:抽象类、扩充抽象类、实现类接口、具体实现类。

 

         扩充抽象类作为一个维度,实现类接口作为另一个维度。如图

抽象类:毛笔,扩充抽象类:毛笔各种型号,实现类接口:颜色。具体实现类:各种颜色。

如果有多个维度,则添加多个实现类接口即可。

 

1.3组合模式:组合的多个对象构成树形结构,对每一个对象(叶子对象或者容器对象)的使用具有一致性。组合模式的关键是定义了一个抽象构件类,它既可以代表叶子,又可以代表容器,而客户端针对该抽象构件类进行编程,无须知道它到底表示的是叶子还是容器,可以对其进行统一处理。

 

         角色:抽象构件(为叶子构件和容器构件声明方法)、叶子构件(抽象构件中对于子构件方法采用异常方式处理)、容器构件(包含子构件,也有叶子构件的方法)。

 

1.4装饰模式:在不改变对象本身的基础上,给对象添加新的行为。

 

         角色:抽象构件、具体构件、抽象装饰类、具体装饰类。


         装饰模式的关键是:抽象装饰类继承抽象构件。这样做是因为装饰器中保存了构件的引用,可以对构件进行装饰,所以装饰器相当于装饰后的构件,最后调用的是装饰器的display

 

1.5外观模式:为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

 

1.6代理模式:给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。代理模式可以在访问原对象前后,进行其他的操作。如远程代理、虚拟代理、缓冲代理、保护代理、智能引用代理等。

 

         角色:抽象主题角色、真实主题角色、代理主题角色。其中真实主题角色和代理主题角色都要实现抽象主题角色接口。



转自:http://blog.csdn.net/lovelion/article/details/17517213

原创粉丝点击