以下关于状态(State)模式和策略(Strategy)模式的叙述中,说法错误的是(48)。

admin2013-05-11  48

问题 以下关于状态(State)模式和策略(Strategy)模式的叙述中,说法错误的是(48)。

选项 A、对于客户程序而言,State模式比Strategy模式更透明
B、Strategy模式用来处理算法变化,State模式用来处理状态变化
C、State模式的对象变化频率比Strategy模式的对象高
D、State模式的“状态”是在对象外部,Strategy模式的“策略”是在对象内部

答案D

解析 State(状态)模式的设计意图是:允许一个对象在其,内部状态改变时变更它的行为。而Strategy(策略)模式的设计意图是:定义一系列的算法,把它们一个一个地封装起来,并且使它们可相互替换。可见,Strategy模式用来处理算法变化,而State模式则是处理状态变化。strategy模式在概念结构上与state模式非常相似,但它们各自的目的不同。区分这两个模式的关键是看行为是由状态驱动还是由一组算法驱动。通常,State模式的“状态”是在对象内部的,Strategy模式的“策略”可以在对象外部。Strategy模式中,算法是否变化完全是由客户程序开始决定的,而且往往一次只能选择一种算法,不存在算法中途发生变化的情况。而State模式如其定义中所言,在它的生命周期中随时存在着状态的转变和行为的更改,而且状态变化是一个线形的整体。对于客户程序而言,这种状态变化往往是透明的。
转载请注明原文地址:https://kaotiyun.com/show/bERZ777K
0

相关试题推荐
最新回复(0)