设计模式 状态变化模式 职责链模式 1. 职责链模式Chain of Responsibility1.1 动机在软件构建过程,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显式指定,将必不可少地带来请求发送者与接受者的紧耦合 如何使请求的发送者不...
设计模式 状态变化模式 状态模式 状态模式 State1.1 动机在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为可能完全不同 如何在运行时根据对象的状态来透明地改变对象的行为?而不会为对象操作...
设计模式 状态变化模式 备忘录模式 1. 备忘录模式memento1.1 动机在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前处于某个点时的状态。如果使用一些公有接口来让其他对象得到对象的状态。便会暴露对象的细节实现 如何实现对...
设计模式 性为变化模式 命令模式 1. 命令模式Command1.1 动机在软件构建过程中,”行为请求者“与”行为实现者“通常呈现一种”紧耦合“。但在某些场合——比如需要对行为进行记录、撤销/重做、事务等处理,这种无法抵御变化的紧耦合是不合适的。 在这种情况下,如何将...
设计模式 数据结构模式 迭代器模式 1 迭代器Iterator1.1 动机在软件构建过程中,集合对象内部数据结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明的访问其中的元素;同时这种“透明遍历”也为“同一种算法在多种集合对...
设计模式 数据结构模式 组合模式 1 组合模式Composite1.1 动机在软件在某些情况下,客户代码过多地依赖对象容器复杂的内部实现结构,对象容器内部实现结构的变化将引起客户代码的频繁变化,带来代码的维护性、可拓展性等弊端 如何将“客户代码与复杂的对象容器结构”解...
设计模式 接口隔离模式 Facade模式 接口隔离模式在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案 Facade门面模式1.1 动机如果某个方案的组件的客户和组件中...
设计模式 接口隔离模式 适配器模式 适配器Adapter1.1 动机在软件系统中,由于应用环境的变化,常常需要将”一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的 如何应对这种”迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新...
设计模式 接口隔离模式 代理模式 Proxy代理模式1.1 动机在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外访问等),直接访问会给使用者、或者系统结构带来很多麻烦 如何在不失去透明操作对象的同时来管理/控制这...
设计模式 接口隔离模式 中介者模式 中介者模式Mediator1.1 动机在软件构建过程中,经常会出现多个对象互相关联交互的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接引用关系将面临不断的变化 虽然将一个系统分割成许多对象通常可以增加可复...