定义:允许一个对象的内部状态改变时改变它的行为。对象看起来似乎修改了它的类。
本质:根据状态来分离和选择行为。
状态:对象实例的属性值。
行为:对象的功能,大多对应到方法上。
状态模式的功能:分离状态的行为,通过维护状态的变化,来调用不同装态对应的不同功能。
状态和行为是相关联的,可以描述为:状态决定行为。
(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