当一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时,可以使用状态模式。
状态模式通过把各种状态转移逻辑分布到State的子类之间,来减少相互间的依赖。同时对各种状态进行抽象成一个接口。
比如工作状态:
上午工作精神饱满,中午工作犯困了,下午工作精神恢复,晚上工作很累。
工作状态可能还会扩展,比如,晚上到点必须回家了。
这时候GOF State用处很大了。
过程化思想往往是实现在一个逻辑方法里面,而00则抽象问题和变化,将问题分解。
00的实现代码量可能比较长,类多,有接口,但是这种设计往往带来后续扩展是比较有利的,不需要牵一发动全身。
状态模式通过把各种状态转移逻辑分布到State的子类之间,来减少相互间的依赖。同时对各种状态进行抽象成一个接口。
比如工作状态:
上午工作精神饱满,中午工作犯困了,下午工作精神恢复,晚上工作很累。
工作状态可能还会扩展,比如,晚上到点必须回家了。
这时候GOF State用处很大了。
过程化思想往往是实现在一个逻辑方法里面,而00则抽象问题和变化,将问题分解。
00的实现代码量可能比较长,类多,有接口,但是这种设计往往带来后续扩展是比较有利的,不需要牵一发动全身。