状态模式:根据状态决定行为
如果一个类的很多行为都是根据state去实现的,就可以把state抽象出来,在state里去实现方法。在真正的类里调用不同的state的子类的处理方法。
public abstract class MMState {
abstract void smile();
abstract void cry();
abstract void say();
}
public class MMHappyState extends MMState {
@Override
void smile() {
System.out.println("happy smile");
}
@Override
void cry() {
System.out.println("happy cry");
}
@Override
void say() {
System.out.println("happy say");
}
}
public class MMSadState extends MMState {
@Override
void smile() {
System.out.println("sad smile");
}
@Override
void cry() {
System.out.println("sad cry");
}
@Override
void say() {
System.out.println("sad say");
}
}
public class MM {
String name;
MMState state = new MMHappyState();
public void smile() {
state.smile();
}
public void cry() {
state.cry();
}
public void say() {
state.say();
}
}