设计模式学习笔记:行为型模式
2013-11-19 14:39
218 查看
结构型设计模式是从程序的结构上解决模块之间的耦合问题(好像是句废话),GoF23种设计模式中结构型设计模式有7种,分别是:Adapter适配器模式、Bridge桥接模式、Composite组合模式、Decorator装饰模式、Facade外观模式、Flyweight享元模式和Proxy代理模式。下面分别总结一下这几种模式:
在学习的过程中感觉,从代码的角度看Adapter适配器模式和Proxy代理模式有些类似,Adapter适配器模式是解决现有对象在新的环境中的不足,而Proxy代理模式是解决直接访问对象时出现的问题,这两种模式从使用角度看都是解决直接访问对象时出现的问题,只是含义不十分相同。
设计模式 | GoF的描述 | 我的理解 |
Adapter适配器模式 | 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作 | 转换接口,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是,新环境要求的接口是现存对象所不满足的,此时我们可以通过添加一层Adapter对现有的对象加入一些接口,使其适应新的应用环境。 |
Bridge桥接模式 | 将抽象部分与实现部分分离,使他们可以独立的变化 | 分离接口(抽象)与其实现,当某个类型具有两个或两个以上的纬度变化(或者说是变化点),通过以继承接口的方式隔离变化,以减少因变化带来的代码的修改量。 |
Composite组合模式 | 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite模式使得客户对单个对象和组合对象的使用具有一致性 | 解决客户程序与复杂对象容器的解耦,一类具有“容器特征”的对象——即他们在充当对象的同时,又是其他对象的容器的情况,通过继承统一的接口,我们可以将容器对象及其子对象看成同一类对象使用,以减少对象使用中的复杂度。 |
Decorator装饰模式 | 动态的给一个对象添加一些额外的职责。就增加功能而言,Decorator模式比生成子类更为灵活 | 在稳定接口的前提下为对象扩展功能,主要是解决用继承的方式为对象扩展大量功能而造成的子对象数量膨胀的问题 |
Facade外观模式 | 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 | 简化接口,对于复杂子系统或子对象调用的封装。从客户程序角度看,只能看见Facade提供的接口。换句话说是对子对象调用的封装,将客户程序对子对象的调用与子对象的变化分离。 |
Flyweight享元模式 | 运用共享技术有效的支持大量细粒度的对象 | 主要是解决由于相同对象数量过大而造成系统内存开销过大的问题。实际上是相同的对象引用指向同一个对象空间。在使用Flyweight模式前要做一个评估,如果使用不当会适得其反 |
Proxy代理模式 | 为其他对象提供一种代理以控制这个对象的访问 | 解决直接访问某些对象是出现的问题,如:访问远程的对象 |
相关文章推荐
- 学习笔记:11种行为型设计模式简单对比
- 设计模式学习笔记三(行为型模式)
- 学习笔记:11种行为型设计模式简单对比
- 设计模式学习笔记——行为型(总结)
- 设计模式学习笔记(七):行为型模式
- 学习Java 23种设计模式详解笔记之行为型模式(三)
- C#面向对象设计模式纵横谈 学习笔记22 State模式(行为型模式)
- java 设计模式 学习笔记(3) 抽象工厂模式
- 设计模式学习笔记——State状态模式
- 设计模式C++学习笔记之九(Template Method模板方法模式)
- C#设计模式学习笔记-单例模式
- 设计模式学习笔记(三)—Strategy策略模式
- 设计模式学习笔记八:建造者模式(Builder Pattern)
- 学习笔记——JAVA设计模式<15>命令模式
- 设计模式笔记(22)---状态模式(行为型)
- 设计模式学习笔记(三)装饰模式(Decorator)
- 设计模式学习笔记---享元模式FlyWeight pattern(Java版)
- 设计模式C++学习笔记之五(Factory Method工厂方法模式)
- 设计模式学习笔记九:原型模式(和深浅复制)
- 《Head First 设计模式》学习笔记:复合模式