摘要:
Visitor 访问者模式(行为型模式)动机(Motivation)在软件构造过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法),如果直接在基类中做这样的修改,将会给子类带来繁重的变更负担,甚至破坏原有设计。如果在不变更类层次结构的前提下,在运行时更加需要透明地为类层次结构上的各个... 阅读全文
摘要:
Strategy 策略模式(行为型模式)动机(Motivation)在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。如何在运行时根据需要透明地更改算法?将算法与对象本身解耦,从而避免上述问题... 阅读全文
摘要:
State 状态模式(行为型模式)动机(Motivation)在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态的行为就可能完全不同。如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转换之间引入紧耦合?意图(Int... 阅读全文
摘要:
Memento 备忘录模式(行为型模式)对象状态的回溯对象状态的变化无端,如何回溯、恢复对象在某个点的状态?动机(Motivation)在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前处于某个点时的状态。如果使用一些共有接口来让其他对象得到对象的状态,便会暴... 阅读全文
摘要:
Chain Of Responsibility 职责链模式(行为型模式)请求的发送者与接受者某些对象请求的接受者可能有多种多样,变化无常……动机(Motivation)在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显示指定,将必不可少地带来请求发送者与接受者... 阅读全文
摘要:
Observer 观察者模式(行为型模式)动机(Motivation)在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系”——一个对象(目标对象)的状态发生改变,所有依赖对象(观察者对象)都将得到通知。如果这样的以来对象关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依... 阅读全文