读书人

状态方式(State)

发布时间: 2013-09-17 13:35:59 作者: rapoo

状态模式(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


读书人网 >软件架构设计

热点推荐