定义:允许一个对象的内部状态改变时改变它的行为。对象看起来似乎修改了它的类。
本质:根据状态来分离和选择行为。
状态:对象实例的属性值。
行为:对象的功能,大多对应到方法上。
状态模式的功能:分离状态的行为,通过维护状态的变化,来调用不同装态对应的不同功能。
状态和行为是相关联的,可以描述为:状态决定行为。
(1)定义状态枚举
public enum MagicState { LOCK,DOWNLOAD, DOWNLOADING, PROCESS, PROCESSING, SOUND };
(2)设置状态
public void setState ( MagicState state){ this.state = state };
(3)为状态添加方法
private void switchMagicState(MagicState ms) { Logging.d(TAG, "switchMagicState|ms = " + ms); mMagicTask.state = ms; switch (ms) { case LOCK: //.......lock相关的方法 break; case DOWNLOAD: break; case DOWNLOADING: break; case PROCESS: break; case PROCESSING: break; case SOUND: break; default: break; } }
(4)切换状态
原文:http://www.cnblogs.com/xiakexinghouzi/p/4736657.html