状态模式(State)
@@@模式定义:
允许一个对象在其内部状态改变时改变它的行为。
对象看起来似乎修改了它的类
@@@练习示例:
在线投票
@@@示例代码:
\pattern\VoteState.java
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
package user;import pattern.VoteManager;public class Client { public static void main(String[] args) { VoteManager vm = new VoteManager(); for (int i = 0; i < 8; i++) { vm.vote("u1", "A"); } }}
@@@模式的实现:
上下文持有状态对象,但是其自身并不处理跟状态相关的行为,
而是将状态处理的功能委托给了状态对应的状态处理类来处理。
@@@模式的优点:
简化应用逻辑控制;
更好地分离状态和行为;
更好的扩展性;
显式化进行状态转换;
@@@模式的缺点:
一个状态对应一个状态处理类,会使程序引入太多的状态类,
这会使程序变得杂乱。
@@@模式的本质:
根据状态来分离和选择行为。
@@@模式体现的设计原则:
NA