- 博客(12)
- 资源 (2)
- 收藏
- 关注
原创 设计模式——访问器模式(visitor)
组件构建构成中,组件行为的变化经常导致组件本身剧烈的变化;“行为变化”将组件本身和组件行为解耦,从而支持组件行为变化。command,visitor属于行为变化模式。motivation:软件构件过程中,由于需求的变化,某些类的层次结构中,常常需要增加新的行为,入股直接在基类中进行更改,将会给子类带来繁重的变更负担,甚至改变原有的设计;在不更改层级结构的前提下,在运行时透明地根据需求,为类...
2019-12-23 02:38:59 275
原创 设计模式——命令模式(command)
组件构建构成中,组件行为的变化经常导致组件本身剧烈的变化;“行为变化”将组件本身和组件行为解耦,从而支持组件行为变化。command,visitor属于行为变化模式。motivation:软件构件过程中,“行为请求者”和“行为执行者”常常呈现出紧耦合;在某些场合——例如记录、撤销/重做,事务等处理时,这种无法抵御变化的紧耦合时不适应软件发展的;将一个请求(行为)进行对象化,从而可以使用不同...
2019-12-23 01:49:55 156
原创 设计模式——职责链(chain of responsibility)
常常在一些组件内部会有特定数据结构,如果客户代码直接使用这些特定数据结构,会极大破坏组件复用;因此,可以将组件中主句结构封装在内部,为外部提供统一的接口,来实现与特定数据结构无关的访问。composite,iterator,chain of responsibility属于数据结构模式。motivation:一个请求可能会被多个对象处理,但是每个请求只能有一个接收者;如果显示指定,一定会给...
2019-12-23 01:26:03 173
原创 设计模式——迭代器(iterator)
常常在一些组件内部会有特定数据结构,如果客户代码直接使用这些特定数据结构,会极大破坏组件复用;因此,可以将组件中主句结构封装在内部,为外部提供统一的接口,来实现与特定数据结构无关的访问。composite,iterator,chain of responsibility属于数据结构模式。motivation:软件构建过程中,集合对象内部的数据结构变化各异,我们希望在不暴露器内部实现的同时,...
2019-12-23 00:52:54 123
原创 设计模式——组合模式(composite)
常常在一些组件内部会有特定数据结构,如果客户代码直接使用这些特定数据结构,会极大破坏组件复用;因此,可以将组件中主句结构封装在内部,为外部提供统一的接口,来实现与特定数据结构无关的访问。composite,iterator,chain of responsibility属于数据结构模式。motivation:某些情况下,软件系统过多依赖对象容器复杂的内部实现,在其内部实现发生变化时,会对代...
2019-12-22 23:03:55 161
原创 设计模式——状态模式(state)
在组件构件的过程中,某些对象的状态经常变化,如何对这些变化进行有效的管理,同时维持高层模块的稳定。state,memento属于状态变化类别的设计模式。motivation:在软件构件过程中,某些对象的状态发生变化,其行为也相应发生变化;如何在运行时根据对象状态来透明更改对象行为,而不会在对象状态和操作之间引入紧耦合。key interface or class:1...
2019-12-22 22:10:52 246
原创 设计模式——适配器模式(adapter)
某些接口之间的依赖,往往会带来问题,添加一层间隔的稳定接口来隔离接口,常常是一种解决办法。facade,proxy,adapter,mediator属于接口隔离类。motivation:软件系统中,由于应用环境的变化,常常需要将一些现存对象,放在新的环境中使用,但是新环境中对接口的要求是这些对象所不满足的;将现存的接口转化为客户希望的接口。key interface or class:...
2019-12-08 17:03:03 114
原创 设计模式——代理模式(proxy)
某些接口之间的依赖,往往会带来问题,添加一层间隔的稳定接口来隔离接口,常常是一种解决办法。facade,proxy,adapter,mediator属于接口隔离类。motivation:在某些情况下(例如对象创建的开销很大,某些操作需要安全控制,或者需要进行线程外的访问),直接访问会给使用者或者系统带来很多麻烦;需要为其他对象提供一种代理一控制对该对象那个的访问。key interfa...
2019-12-08 16:16:01 120
原创 设计模式——门面模式(facade)
某些接口之间的依赖,往往会带来问题,添加一层间隔的稳定接口来隔离接口,常常是一种解决办法。facade,proxy,adapter,mediator属于接口隔离类。motivation:A方案中组件的客户以及组件中子系统存在过多的耦合,为子系统中的一组接口提供稳定界面,需要提供一个高层接口,为子系统提供稳定复用。key interface or class:1....
2019-12-08 15:20:39 152
原创 设计模式——单件模式(singleton)
“面对对象”很好解决了抽象的问题,通常面对对象的成本几乎可以忽略不计,但是有时候面对起成本需要谨慎对待。singleton,flyweight属于”对象性能“模式。motivation:在软件中,有时候一个对象只需要一个对象的存在,才能保证正确的逻辑和良好的效率。key interface or class:1. 有getInstance的方法得到该对象,该方法中需...
2019-12-06 18:14:43 153
原创 设计模式——原型模式(prototype)
Factory Method,Abstract Factory,Prototype,Builder属于对象创建模式。prototype模式使用情况比较少,通过深拷贝来复制当前状态的对象???motivation:创建某些结构非常复杂的对象,由于需求的变化,这些对象面临着剧烈的变化,但是他们却能有一个比较稳定一致的接口。key interface or class:1...
2019-12-05 21:05:01 164
原创 设计模式——抽象工厂(absolute factory)
Factory Method,Abstract Factory,Prototype,Builder属于对象创建模式。motivation:可能面对一系列相互依赖的对象时;可能面对更多系列对象的创建工作。key interface or class:1. IFactory基类接口。feature: 多个factory method放在一个抽象工厂接口中。struc...
2019-12-02 21:13:20 169
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人