书城计算机大话设计模式
11030400000177

第177章 8 策略模式――状态模式/模版模式的区别

小A:“状态模式和策略模式有什么不同?”

大B:“状态模式侧重状态方面,一般不会接受新的状态对象,即系统已经定义足够的状态。策略侧重不同的行为的改变在统一的接口下,强调多态下面行为的执行过程,处理过程,可以从用户那里接受参数,只要用户提供的策略符合接口。”

小A:“与模版模式又有什么不同呢?”

大B:“模版模式就是算法在父类中,子类不会完全改写算法,可以改写部分,或称关键部分,但整体的算法不变,可以节省大量代码。策略模式所有的算法均在子类中完成,强调行为即算法的不同,可以使程序更灵活。”