打字猴:1.700473296e+09
1700473296 public static void main(String[]args){
1700473297
1700473298 ILift lift=new Lift();
1700473299
1700473300 //电梯的初始条件应该是停止状态
1700473301
1700473302 lift.setState(ILift.STOPPING_STATE);
1700473303
1700473304 //首先是电梯门开启,人进去
1700473305
1700473306 lift.open();
1700473307
1700473308 //然后电梯门关闭
1700473309
1700473310 lift.close();
1700473311
1700473312 //再然后,电梯运行起来,向上或者向下
1700473313
1700473314 lift.run();
1700473315
1700473316 //最后到达目的地,电梯停下来
1700473317
1700473318 lift.stop();
1700473319
1700473320 }
1700473321
1700473322 }
1700473323
1700473324 在业务调用的方法中增加了电梯状态判断,电梯要不是随时都可以开的,必须满足一定条件才能开门,人才能走进去,我们设置电梯的起始是停止状态,运行结果如下所示:
1700473325
1700473326 电梯门开启……
1700473327
1700473328 电梯门关闭……
1700473329
1700473330 电梯上下运行起来……
1700473331
1700473332 电梯停止了……
1700473333
1700473334 我们来想一下,这段程序有什么问题。
1700473335
1700473336 ❑电梯实现类Lift有点长
1700473337
1700473338 长的原因是我们在程序中使用了大量的switch……case这样的判断(if……else也是一样),程序中只要有这样的判断就避免不了加长程序,而且在业务复杂的情况下,程序会更长,这就不是一个很好的习惯了,较长的方法和类无法带来良好的维护性,毕竟,程序首先是给人阅读的,然后才是机器执行。
1700473339
1700473340 ❑扩展性非常差劲
1700473341
1700473342 大家来想想,电梯还有两个状态没有加,是什么?通电状态和断电状态,你要是在程序增加这两个方法,你看看Open()、Close()、Run()、Stop()这4个方法都要增加判断条件,也就是说switch判断体中还要增加case项,这与开闭原则相违背。
1700473343
1700473344 ❑非常规状态无法实现
1700473345
[ 上一页 ]  [ :1.700473296e+09 ]  [ 下一页 ]