打字猴:1.700473641e+09
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 ]  [ 下一页 ]