emptysoul

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  25 Posts :: 0 Stories :: 23 Comments :: 0 Trackbacks

常用链接

留言簿(18)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

02 2009 档案

     摘要: 访问者模式(Visitor)是一种分离对象数据结构与行为的方法,通过这种分离,可以为一个已存在的类或类群增加新的操作而无需为它们作任何修改。  阅读全文
posted @ 2009-02-21 20:21 emptysoul 阅读(1069) | 评论 (1)  编辑

     摘要: 策略模式(Strategy)目的是,定义一系列算法,将每个算法封装起来,并让他们可以相互替换。策略模式让算法独立于使用它的客户而变化。  阅读全文
posted @ 2009-02-21 15:54 emptysoul 阅读(707) | 评论 (2)  编辑

     摘要: 状态模式(State)允许一个对象在其内部状态改变的时候改变行为。  阅读全文
posted @ 2009-02-17 21:28 emptysoul 阅读(2676) | 评论 (4)  编辑

     摘要: 备忘录模式(Memento)的定义为:在不破坏封闭的前提下,捕获并保存一个对象的内部状态,这样可以将对象恢复到原先的状态。
很多应用程序中的Ctrl+Z会取消最后一次用户操作,如果不用备忘模式,看管者(caretaker)对象要备份原发器(Originator)对象状态,并且要清楚原发器内部的结构,这样在原发器上的任何修改,看管者都要做相应的修改,使用备记录模式可以解决这种问题,备忘录封闭保存备份的状态,当原发器提出备份请求,它就会创建一个备忘录对象返回给看者。  阅读全文
posted @ 2009-02-17 20:39 emptysoul 阅读(724) | 评论 (0)  编辑

     摘要: 观察者模式(Observer)定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。  阅读全文
posted @ 2009-02-16 21:12 emptysoul 阅读(652) | 评论 (3)  编辑

     摘要: 中介者模式(Mediator)定义一个对象封装一系列多个对象如何相互作用,使得对象间不需要显式地相互引用,从而使其耦合更加松散,并且还让我们可以独立变化多个对象相互作用。  阅读全文
posted @ 2009-02-15 20:50 emptysoul 阅读(1454) | 评论 (1)  编辑

     摘要: 迭代器模式(Iterator)提供一种方法可以访问聚合对象,而不用暴露这个对象的内部表示。  阅读全文
posted @ 2009-02-15 13:30 emptysoul 阅读(1425) | 评论 (0)  编辑

     摘要: 命令模式(Command)的目标是将一个请求封装成一个对象,因此可以参数化多个客户的不同请求,将请求排除,记录请求日志,并支持撤消操作。  阅读全文
posted @ 2009-02-14 20:13 emptysoul 阅读(2099) | 评论 (2)  编辑

     摘要: 责任链模式(Chain of Responsibility)的目标是使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。  阅读全文
posted @ 2009-02-13 09:45 emptysoul 阅读(2008) | 评论 (2)  编辑

     摘要: 模板模式(Template)定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中。  阅读全文
posted @ 2009-02-12 17:32 emptysoul 阅读(404) | 评论 (0)  编辑

     摘要: 代理模式(Proxy)的目标是为其他对象提供一个代理或地方以控制对这个对象的访问。当客户向代理对象第一次提出请求时,代理实例化真实对象,并且将请求传给它,以后所有客户请求都经由代理传给真实对象。代理模式分为4类:
1、虚拟代理(Virtual Proxy):直到首次请求时才生成一个真实的耗费代理,它用来存放花费大的真实对象。
2、远程代理(Remote Proxy):本地的代理对象控制一个远程对象。
3、安全代理(Protection Proxy):代理检查调用真实对象所需要的权限。
4、聪明引用(Smart Reference):当调用真实对象时,代理处理另外一些事情。  阅读全文
posted @ 2009-02-12 11:27 emptysoul 阅读(447) | 评论 (0)  编辑

     摘要: 组合模式(Composite)的定义为:组合多个对象形成树形结构,以表示整体-部分的结构层次。组合模式对单个对象和组合对象的使用具有一致性。  阅读全文
posted @ 2009-02-11 19:51 emptysoul 阅读(2038) | 评论 (3)  编辑

     摘要: 享无模式(Flyweight)是运用共享技术有效地支持大量细粒度的对象。  阅读全文
posted @ 2009-02-11 14:57 emptysoul 阅读(565) | 评论 (0)  编辑

     摘要: 外观模式(Facade)的定义是:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。  阅读全文
posted @ 2009-02-11 10:25 emptysoul 阅读(318) | 评论 (0)  编辑

     摘要: 装饰模式(Decorator)目的是给对象添加职责  阅读全文
posted @ 2009-02-10 21:31 emptysoul 阅读(809) | 评论 (0)  编辑

     摘要: 适配器模式(Adapter)的目标是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作,其分为类模式及对象模式  阅读全文
posted @ 2009-02-10 15:23 emptysoul 阅读(327) | 评论 (0)  编辑

     摘要: 桥接模式的意图是将抽象部分与实现部分分离,使它们都可以独立的变化。
  阅读全文
posted @ 2009-02-10 11:02 emptysoul 阅读(994) | 评论 (0)  编辑

     摘要: 原型模式解决的目标是通过一个已有的对象来创建一个新对象。
比如在使用Ghost对系统进行备份时,实际上备份的是操作系统的一个副本,而不是一个全新的操作系统,这时操作系统就是原型对象。  阅读全文
posted @ 2009-02-09 15:52 emptysoul 阅读(824) | 评论 (1)  编辑

     摘要: 单件模式(Singleton)的目标是在应用程序中创建一个唯一的对象。
比较典型的例子就是Windows下的任务管理器。  阅读全文
posted @ 2009-02-09 12:22 emptysoul 阅读(367) | 评论 (0)  编辑

     摘要: 构建器模式(Builder)的目标是将对象的创建与它的表示法分开,意味着创建过程保持原状,但产生对象的表示法可能不同,它通常用来创建复杂的对象,这个对象是由多个组件组成的。
对于销售组装电脑的销售商来说,他们要销售电脑,而电脑通常由CPU、主板及硬盘等部件组成,这时,电脑的组成就可以由Builder模式来解决。  阅读全文
posted @ 2009-02-08 20:45 emptysoul 阅读(423) | 评论 (0)  编辑

     摘要: AbstractFactory模式解决的问题是创建一组相关或者相互依赖的对象。
我们以一个电脑产品的例子来说明。
我们现在要生产电脑产品,假设电脑产品现在只有台式机及笔记本两种,我们需要建一个工厂用来生产电脑产品,而工厂中可以生产不同品牌的电脑,对于每个品牌,我们分别建立相应的品牌工厂,负责生产各自的品牌产品,假设现在有DELL及IBM两个品牌工厂,那么现在每个工厂都可以生产各自的台式机及笔记本了。
其类图如下  阅读全文
posted @ 2009-02-07 21:49 emptysoul 阅读(425) | 评论 (1)  编辑