摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 模板方法模式,准备一个抽象类,将部分逻辑以具体方法以及具体构造器的形式实现模板方法模式的结构:抽象模板角色:定义一个或多个抽象操作,以便让子类实现,并实现了一个模板方法具体模板角色:实现一个或多个抽象操作,每一个抽象模板角色都可以有任意多个具体模板角色与之对应。package cn.tcl.test;public abstract class MakeBox {public void doThis(){System.out.println("do this 阅读全文
posted @ 2011-01-14 20:47 魔战 阅读(152) 评论(0) 推荐(0) 编辑
摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 外部与一个子系统的通信必须通过一个统一的门面对象进行,这就是门面模式外部与一个子系统的通信必须通过一个统一的门面对象进行,这就是门面模式。一般而言,Facade模式是为了 降低子系统之间,客户端与实现化层之间的依赖性。当在构建一个层次化的系统时,也可以同过使用Facade模式定义系统中每一层的入口,从而简化层与层之 间的依赖关系。其简单实现如下图所示(左边是没有使用Facade模式示意图):2.测试systemA.javapackage facade;/* 阅读全文
posted @ 2011-01-14 20:45 魔战 阅读(164) 评论(0) 推荐(0) 编辑
摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 命令模式把一个请求或者操作封装到一个对象中,把发出命令的责任和执行命令的责任分割开,委派给不同的对象。命令模式结构:客户角色:创建一个具体命令对象并确定其接收者命令角色:声明了一个给所有具体命令类的抽象接口具体命令角色:定义一个接收者和行为之间的弱耦合,实现execute()方法,负责调用接收者的相应操作请求者角色:负责调用命令对象执行请求接收者角色:负责具体实施和执行一个请求1publicclassClient{2publicstaticvoidmain( 阅读全文
posted @ 2011-01-14 20:45 魔战 阅读(170) 评论(0) 推荐(0) 编辑
摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。合成模式:安全式和透明式合成模式1,安全式合成模式抽象构件角色:这是一个抽象角色,它给参加组合的对象规定一个接口树叶构件角色:代表参加组合的树叶对象,一个树叶没有下级的子对象,定义参加组合的原始对象的行为树枝构件角色:代表参加组合的有子对象的对象,并给出树枝构件对象的行为1.packagejavaPattern.composite;2.3.impor 阅读全文
posted @ 2011-01-14 20:43 魔战 阅读(126) 评论(0) 推荐(0) 编辑
摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象当降低了系统的耦合度,但是又要维持对象之间行动的协调一致,那么可以采用观察者模式观察者模式结果抽象主题角色:把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象观察者角色:为所有的具体观察者定义一个接口,在得到主题的通知时更新自己。具体主题角色:将有关状态存入具体观察者对象,在具体主题的内部状态改变时,给所有登记过的观察者发出通知。具体观察者角色:存储与主 阅读全文
posted @ 2011-01-14 20:42 魔战 阅读(270) 评论(0) 推荐(0) 编辑
摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 迭代器模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象迭代器模式结构:抽象迭代子角色:此抽象角色定义出遍历元素所需的接口具体迭代子角色:实现抽象迭代器接口,并保持迭代过程中的游标位置抽象聚集角色:此抽象角色给出创建迭代子对象的接口具体聚集角色:实现抽象聚集对象的接口,并返回一个合适的具体迭代子实例客户端角色:持有对聚集及其迭代子对象的引用,调用迭代子对象的迭代接口,也有可能通过迭代子操作聚集元素的增加和删除白箱聚集(外禀迭代子)://抽象聚集角色p 阅读全文
posted @ 2011-01-14 20:40 魔战 阅读(203) 评论(0) 推荐(0) 编辑
摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 访问者模式的目的是封装一些施加于某种数据结构元素之上的操作,一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。访问者模式结构:抽象访问者角色:声明了一个或者多个访问操作,形成所有的具体元素角色必须实现的接口具体访问者角色:实现抽象访问者角色所声明的接口,也就是抽象访问者所声明的各个访问操作抽象节点角色:声明一个接受操作,接受一个访问者对象作为一个参量具体节点角色:实现了抽象元素所规定的接受操作结构对象角色:可以遍历结构中的所有元素,提供一个高层 阅读全文
posted @ 2011-01-14 20:40 魔战 阅读(244) 评论(0) 推荐(0) 编辑
摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 策略模式,其用意是针对一组算法,将每个算法封装到具有共同接口的独立的类中,从而使得他们可以相互替换,策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式结构 策略模式中有三个对象:(1)环境对象:该类中实现了对抽象策略中定义的接口或者抽象类的引用。(2)抽象策略对象:它可由接口或抽象类来实现。(3)具体策略对象:它封装了实现同不功能的不同算法。//环境角色 publicclassContext{ privateStrategystrategy; 阅读全文
posted @ 2011-01-14 20:38 魔战 阅读(240) 评论(0) 推荐(0) 编辑
摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态备忘录模式结构图:备忘录模式中的角色发起人:创建含有内部状态的备忘录对象,并使用备忘录对象存储状态负责人:负责人保存备忘录对象,但不检查备忘录对象的内容备忘录:备忘录对象将发起人对象的内部状态存起来,并保正其内容不被发起人对象之外的对象像读取注意:在备忘录的角色中,定义了他必须对不同的人提供不同的接口,对发起人提供宽接口, 阅读全文
posted @ 2011-01-14 20:37 魔战 阅读(1488) 评论(0) 推荐(0) 编辑
摘要: 一、桥梁(Bridge)模式桥梁模式是一个非常有用的模式,也是比较复杂的一个模式。熟悉这个模式对于理解面向对象的设计原则,包括"开-闭"原则(OCP)以及组合/聚合复用原则(CARP)都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。注:《Java与模式》一书认为Bridge模式不是一个使用频率很高的模式,我不太赞同,我认为Bridge模式中蕴涵了很多设计模式的关键思想在里面,所以我这里采纳了《Design Patterns Explained》一书的作者Alan Shalloway与James R. Trott的观点:The Bridge pat 阅读全文
posted @ 2011-01-13 10:56 魔战 阅读(1262) 评论(0) 推荐(0) 编辑