组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。简单描述:1个Composite类,里面持有一个容器成员,容器可以存入自身大话设计模式中的截图:代码例子:AbstractComponent类:
1 package com.longs...
分类:
编程语言 时间:
2014-06-09 16:20:55
阅读次数:
382
迭代器模式:提供一个方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示简单描述:提供一个单独的接口遍历聚集类对象中的成员,以实现聚集对象的隐藏和内部数据供外部访问大话设计模式中的截图:我觉得以上面的图示进行编码会暴露ConcreteAggregate中的内部信息(ConcreteIera...
分类:
编程语言 时间:
2014-06-09 15:28:57
阅读次数:
314
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。简单描述:构造函数设置为private,以禁止外部类实现本类。本类中提供一个静态方法返回一个本例对象(注意多线程中的实现)大话设计模式中的截图:代码例子:Singleton类:
1 package com.longsheng.singl...
分类:
编程语言 时间:
2014-06-09 15:07:30
阅读次数:
376
合成/聚合复用原则:尽量使用合成/聚合,尽量不要使用类继承。桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立变化。解释:即一个系统可以有多种分类实现,把没种分类独立出来,让他们可以独自变化,减少他们之间的耦合。简单描述:1个Abstraction类,持有一个Implementor的引用,其方...
分类:
编程语言 时间:
2014-06-09 14:04:43
阅读次数:
328
命令模式:将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日记,以及支持可撤销的操作。简单描述:1个Receiver,知道如何执行命令。1个抽象命令,持有一个Receiver的引用,命令的执行则调用Receiver的对应方法(具体命令具体调用相应的方法)。1个I...
分类:
编程语言 时间:
2014-06-09 13:15:24
阅读次数:
363
WTDelegate#import @protocol WTDelegate @required-
(void)sleep;- (void)eat;- (void)work;@endWTPhilosopher.h#import #import
"WTDelegate.h"@interface WTP...
分类:
移动开发 时间:
2014-06-08 20:57:13
阅读次数:
316
状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。简单描述:一个Context类(存有一个抽象状态State引用),调用状态类的方法。State的具体类方法中会判断Context类的状态(如时间),满足一个状态则执行相应动作,否则把Context的State引用指向下...
分类:
编程语言 时间:
2014-06-08 20:53:11
阅读次数:
469
适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。简单描述:大话设计模式中的截图:代码例子:AbstractPlayer类:1
package com.longsheng.adapter;2 3 public abst...
分类:
编程语言 时间:
2014-06-08 20:00:30
阅读次数:
324
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。简单描述:一个Memento类,代表Originator中要备份的属性。Originator负责生成备份和还原备份,CareTaker负责存储备份大话设计模式中的截图:例...
分类:
编程语言 时间:
2014-06-08 19:32:19
阅读次数:
286
概念
代理模式(Proxy),为其他对象提供一种代理以控制对象的访问。模式结构一个是真正的你要访问的对象(目标类),一个是代理对象,真正对象与代理对象实现同一个接口,先访问代理类再访问真正要访问的对象。代理模式UML图代码实战
//代理模式classProxy:IGiveGift//让...
分类:
其他好文 时间:
2014-06-08 19:03:48
阅读次数:
238