COMPOSITE(组合) 适用性: 1.想表示对象的部分整体层次结构 2.希望用户忽略组合对象和单个对象的不同。 思考: 组合模式的所有组件应该具备同一个接口。一直感觉,这种组合是一种递归组合的概念
FLYWEIGHT(享元) 意图: 运用共享技术有效地支持大量细粒度的对象。 适用性: 1.一个程序应用了大量的对象,造成很大的存储开销。 2.对象的大多数状态可变为外部状态。 3.如果删除对象的外部
OBSERVER(观察者) 适用性: 1.当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这二者封装在独立的对象中以是他们可以各自独立地改变和复用。 2.当对一个对象的改变需要同时改变其他对
MEDIATOR(中介者) 适用性: 1.一组对象以定义良好但是复杂的方式进行通信,产生相互依赖关系混乱且难以理解。 2.一个对象引用很多其他对象并且直接与这些对象通信,导致难以复用该对象。 3.想定
INTERPRETER(解释器) 适用性: 当有一个语言需要解释执行,并且你可以将语言中的句子表示为一个抽象语法树时,可使用解释器模式。 思考: 一个常见使用情况当然是操纵一种程序语言,例如JavaS
CHAIN OF RESPONSIBILITY(职责链) 适用性: 1.有多个对象可以处理统一请求,但是,那个对象处理要到运行时刻决定。 2.希望在不明确接收者的情况下,向多个对象中的一个提交一个请求
STRATEGY(策略) 适用性: 1.许多相关的类仅仅是行为有异。”策略“提供了一种用多个行为中的一个行为来配置一个类册方法。 2.需要使用一个算法的不同变体。 3.算法使用
Composite模式定义: 将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性. Composite比较容易理解,
随便谈谈 学习设计模式的过程中,有一种感觉越来越强烈,就是抽象。就是把一些重复的经常出现的东西,整理出来放在一起,写起来管理起来都方便。从最原始的循环,到后来的函数,甚至古老的代数,通
Adapter 适配器模式 Intent 把一个类的接口转换成Client期望的另一个接口。适配器让类与类之间不至于因为接口不兼容而不能协同工作。 Also Known As Wrappe