设计模式 数据结构模式

组合模式

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

设计模式 接口隔离模式

Facade模式

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

设计模式 接口隔离模式

适配器模式

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

设计模式 接口隔离模式

代理模式

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

设计模式 接口隔离模式

中介者模式

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

设计模式 对象性能模式

享元模式

享元模式Flyweight1.1 动机在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行时代价——主要指内存需求方面的代价 如何避免大量细粒度对象问题的同时,让外部客户程序仍然能够透明地使用面向...

设计模式 对象创建模式

构建器模式

构建器Builder1.1 动机在软件系统中,有时候面临着”一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临剧烈的变化,但是它们组合在一起的算法却相对稳定。 如何应对这...