state
如果模型的很多方法都要根据状态实现,那就可以把状态抽象出来。
Operation不会扩展的情况下才能用State模式。
interface State {
void smile();
void cry();
}
class Person {
State state;
void smile() {
state.smile();
}
void cry() {
state.cry();
}
}
class HappyState implements State {
public void smile() {
System.out.println("高兴地笑了");
}
public void cry() {
System.out.println("高兴的哭了");
}
}
class SadState implements State {
public void smile() {
System.out.println("悲伤地笑了");
}
public void cry() {
System.out.println("悲伤地哭了");
}
}