概念不清,方法不明 这是离散数学老师教我的一句终生受用的话。抛开数学与计算机,人类的那些科学严谨的方法论也大抵如此。要想正确地追求自由,拥有自由...
访问者模式用于访问对象的属性对象。可以在不改变属性对象类的前提下改变对属性对象的操作。 以下代码定义了访问者抽象类。被访问的对象有2个属性对象,...
这个模式也叫责任链模式。这种模式解决的是一个请求可能由多个类处理的问题,可以处理的多个类可以按照优先级先后决定自己能否处理请求。 以下代码定义了...
策略模式与状态模式看起来差不多,只是从概念上侧重不同。策略模式封装的是策略或算法,状态模式封装的是状态,主要区别在于封装对象的不同形式。 以下代...
状态模式可以将状态和行动进行捆绑,并移出类外去实现对应关系。对象的状态不再是类内的属性值,而是一个指向状态对象的引用或指针,改变状态只是改变引用...
解释器模式一般用于语义解释问题。我们把问题抽象一下,这里定义一种简单的语法。这套语法规定,符号和结尾符构成表达式,只支持单个语句构成的表达式,不...
备忘录模式要求不破坏封装的前提下将对象内的状态保存到对象外,并且可以用这个状态恢复对象。典型应用是游戏的存档机制。 以下代码定义了游戏的存档,假...
中介者模式可以对多个对象之间的交互进行解耦。这个模式种有2类角色,一个是中介者,另一类是需要互相交互的对象。 以下代码定义了中介者。 以下代码定...
迭代器模式用于解决顺序访问聚合对象问题。C++的容器与迭代器就是典型的实现。 以下代码定义了一个单向链表节点。 以下代码定义了迭代器以及它的基本...