State状态模式:根据状态决定行为;
public class MM{
String name;
private enum MMState {HAPPY,SAD}
public void simle(){
}
public void cry(){
}
public void say(){
}
}
这样的话想添加转台就很麻烦了。
所以需要把状态抽取出来。
public abstract class MMstate{
abstract void smile();
abstract void cry();
abstract void say();
}
public class MM{
String name;
MMState state = new MMHAppyState();
public void simle(){
state.simle();
}
public void cry(){
state.cry();
}
public void say(){
state.say();
}
}
public class MMHAppyState extends MMState{
void smile(){
}
void cry(){
}
void say(){
}
}
新的状态去实现MMState即可。