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();
//State pattern
stage.performPlay();
stage.change();
stage.performPlay();
}
}
运行结果为:
HappyActor
SadActor
通过Stage和Actor的组合,performPlay()方法的行为得到了改变,即运行期间获得了灵活性,这是就是状态模式(State Pattern)。