Franky's LIFE

Anything... ...

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  53 随笔 :: 87 文章 :: 6 评论 :: 0 Trackbacks

结构型设计模式是从程序的结构上解决模块之间的耦合问题(好像是句废话), GoF23 种设计模式中结构型设计模式有 7 种,分别是: Adapter 适配器模式、 Bridge 桥接模式、 Composite 组合模式、 Decorator 装饰模式、 Facade 外观模式、 Flyweight 享元模式和 Proxy 代理模式。下面分别总结一下这几种模式:

设计模式

GoF 的描述

我的理解

Adapter 适配器模式

将一个类的接口转换成客户希望的另一个接口。 Adapter 模式使得原本由于接口不兼容而不能一起工作的类可以一起工作

转换接口,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是,新环境要求的接口是现存对象所不满足的,此时我们可以通过添加一层 Adapter 对现有的对象加入一些接口,使其适应新的应用环境。

Bridge 桥接模式

将抽象部分与实现部分分离,使他们可以独立的变化

分离接口(抽象)与其实现,当某个类型具有两个或两个以上的纬度变化(或者说是变化点),通过以继承接口的方式隔离变化,以减少因变化带来的代码的修改量。

Composite 组合模式

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

解决客户程序与复杂对象容器的解耦,一类具有“容器特征”的对象——即他们在充当对象的同时,又是其他对象的容器的情况,通过继承统一的接口,我们可以将容器对象及其子对象看成同一类对象使用,以减少对象使用中的复杂度。

Decorator 装饰模式

动态的给一个对象添加一些额外的职责。就增加功能而言, Decorator 模式比生成子类更为灵活

在稳定接口的前提下为对象扩展功能,主要是解决用继承的方式为对象扩展大量功能而造成的子对象数量膨胀的问题

Facade 外观模式

为子系统中的一组接口提供一个一致的界面, Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用

简化接口,对于复杂子系统或子对象调用的封装。从客户程序角度看,只能看见 Facade 提供的接口。换句话说是对子对象调用的封装,将客户程序对子对象的调用与子对象的变化分离。

Flyweight 享元模式

运用共享技术有效的支持大量细粒度的对象

主要是解决由于相同对象数量过大而造成系统内存开销过大的问题。实际上是相同的对象引用指向同一个对象空间。在使用 Flyweight 模式前要做一个评估,如果使用不当会适得其反

Proxy 代理模式

为其他对象提供一种代理以控制这个对象的访问

解决直接访问某些对象是出现的问题,如:访问远程的对象

   在学习的过程中感觉,从代码的角度看 Adapter 适配器模式和 Proxy 代理模式有些类似, Adapter 适配器模式是解决现有对象在新的环境中的不足,而 Proxy 代理模式是解决直接访问对象时出现的问题,这两种模式从使用角度看都是解决直接访问对象时出现的问题,只是含义不十分相同。

posted on 2007-03-19 21:03 Franky 阅读(188) 评论(0)  编辑  收藏 所属分类: IT知识

只有注册用户登录后才能发表评论。


网站导航: