1700473641
//停止状态再运行起来,正常得很
1700473642
1700473643
@Override
1700473644
1700473645
public void run(){
1700473646
1700473647
super.context.setLiftState(Context.runningState);
1700473648
1700473649
super.context.getLiftState().run();
1700473650
1700473651
}
1700473652
1700473653
//停止状态是怎么发生的呢?当然是停止方法执行了
1700473654
1700473655
@Override
1700473656
1700473657
public void stop(){
1700473658
1700473659
System.out.println(“电梯停止了……”);
1700473660
1700473661
}
1700473662
1700473663
}
1700473664
1700473665
业务逻辑都已经实现了,我们看看怎么来模拟场景类,如代码清单26-13所示。
1700473666
1700473667
代码清单26-13 场景类
1700473668
1700473669
public class Client{
1700473670
1700473671
public static void main(String[]args){
1700473672
1700473673
Context context=new Context();
1700473674
1700473675
context.setLiftState(new ClosingState());
1700473676
1700473677
context.open();
1700473678
1700473679
context.close();
1700473680
1700473681
context.run();
1700473682
1700473683
context.stop();
1700473684
1700473685
}
1700473686
1700473687
}
1700473688
1700473689
Client场景类太简单了,只要定义一个电梯的初始状态,然后调用相关的方法,就完成了,完全不用考虑状态的变更,运行结果完全相同,不再赘述。
1700473690
[
上一页 ]
[ :1.700473641e+09 ]
[
下一页 ]