状态模式UML.png状态模式
interface TransformersState{
void skill();//变形金刚不同状态下有不同技能
}
汽车人接口
class CarTransformersState implements TransformersState{
public void skill(){
// 汽车状态,技能就是压马路吧
}
}
变形金刚的汽车型状态
class FightingTransformersState implements TransformersState{
public void skill(){
// 战斗状态,技能反正不是压马路,就假设为射击技能吧
}
}
变形金刚的战斗型状态
class Context{
TransformersState mTransformersState;
public void setState(TransformersState mTransformersState){
this.mTransformersState = mTransformersState;
}
public void skill(){
mTransformersState.skill();
}
}
用来管理切换状态的类
class Client{
public static void main(String[] args){
Context context = new Context();
context.setState(new FightingTransformersState());//切到战斗模式
context.skill();//战斗状态下的技能
context.setState(new CarTransformersState());//切到跑车模式
context.skill();//跑车状态下的技能
}
}
客户端
网友评论