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 ]
[
下一页 ]