java中状态模式的一个小例子:
class Actor {
public void act() {
}
}
class HappyActor extends Actor {
public void act() {
System.out.println("HappyActor");
}
}
class SadActor extends Actor {
public void act() {
System.out.println("SadActor");
}
}
class Stage {
/**
* 初始状态
* */
private Actor actor = new HappyActor();
/**
* 改变其状态
* */
public void change() {
actor = new SadActor();
}
/**
* 显示其行为
* */
public void performPlay() {
actor.act();
}
}
public class Transmogrify {
public static void main(String[] args) {
Stage stage = new Stage();
/**
* 显示初始状态信息
* */
stage.performPlay();
/**
* 改变其状态
* */
stage.change();
/**
* 打印状态改变后的信息
* */
stage.performPlay();
}
}