设计模式 状态变化模式

状态模式

状态模式 State1.1 动机在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为可能完全不同 如何在运行时根据对象的状态来透明地改变对象的行为?而不会为对象操作...

设计模式 性为变化模式

命令模式

1. 命令模式Command1.1 动机在软件构建过程中,”行为请求者“与”行为实现者“通常呈现一种”紧耦合“。但在某些场合——比如需要对行为进行记录、撤销/重做、事务等处理,这种无法抵御变化的紧耦合是不合适的。 在这种情况下,如何将...

设计模式 数据结构模式

组合模式

1 组合模式Composite1.1 动机在软件在某些情况下,客户代码过多地依赖对象容器复杂的内部实现结构,对象容器内部实现结构的变化将引起客户代码的频繁变化,带来代码的维护性、可拓展性等弊端 如何将“客户代码与复杂的对象容器结构”解...

设计模式 接口隔离模式

Facade模式

接口隔离模式在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案 Facade门面模式1.1 动机如果某个方案的组件的客户和组件中...

设计模式 接口隔离模式

适配器模式

适配器Adapter1.1 动机在软件系统中,由于应用环境的变化,常常需要将”一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的 如何应对这种”迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新...

设计模式 接口隔离模式

代理模式

Proxy代理模式1.1 动机在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外访问等),直接访问会给使用者、或者系统结构带来很多麻烦 如何在不失去透明操作对象的同时来管理/控制这...

设计模式 接口隔离模式

中介者模式

中介者模式Mediator1.1 动机在软件构建过程中,经常会出现多个对象互相关联交互的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接引用关系将面临不断的变化 虽然将一个系统分割成许多对象通常可以增加可复...