为了账号安全,请及时绑定邮箱和手机立即绑定

电梯里的开发逻辑

标签:
Java 算法

刚开始做开发的那段时间我比较着迷于一样东西电梯之所以会对电梯比较感兴趣是因为电梯里面有很多编程开发用得着的东西而且即使是受过良好教育的人也经常按错按钮比如想上楼的时候却按成了下楼就像下面这样

https://img1.sycdn.imooc.com//63377ea40001fd7c07690401.jpg



有些人应该有这样的经验

按的人并没有错因为他肯定在想我要上楼总得先让电梯下来吧为什么我会知道因为我也这样按过^_^

但是从电梯设计者的角度来看 就表示电梯准备行进的方向是上行 就表示电梯准备行进的方向是下行角度不一样而已

如果仅仅只是这一点东西肯定是不够看的电梯其实是比较复杂的一个系统我曾经试着画过它的运行状态图但是画来画去经过很多次修正之后发现原来电梯的运行状态图和编程语言中经常提起的多线程生命周期极其相似

电梯的维修 = 线程的挂起

电梯无人时 = 就绪状态

电梯运行时 = 运行状态

https://img1.sycdn.imooc.com//63377eb3000175c504430240.jpg



这其实是一幅高度精简和抽象的状态图因为电梯实际运行过程肯定是有很多场景在其中的细细想来可以设想当电梯正常运行时会有如下场景

如果狗蛋在五楼二丫在九楼电梯在一楼

当狗蛋想下楼而二丫想上楼的时候电梯会怎么运行呢?(先进先出FIFO?)

当狗蛋想下楼而二丫也想下楼的时候电梯会怎么运行呢?(先接二丫?)

当狗蛋想上楼而二丫想下楼的时候电梯会怎么运行?(先到五楼接狗蛋?)

当狗蛋想上楼而二丫也想上楼的时候电梯会怎么运行?(先到五楼接狗蛋?)

如果狗蛋在五楼二丫在九楼电梯在十楼出现上面的四种情况又会怎么处理呢

如果狗蛋在五楼二丫在九楼电梯在七楼呢

虽然电梯有超重设置但其实在超重和正常承重量之间还是有临界值的仔细想想

如果处于临界值当电梯上行时它会怎么处理

如果处于临界值当电梯下行时又会怎么处理

这还只是两个人的场景我们日常生活中的电梯尤其是写字楼中的电梯每天不知道有多少人等在多少层楼的门口大家的目的地都不一样电梯运行是的判断条件应该会比上面列出的更复杂一些

但不管有多么复杂只要能够把上面的这些想明白并实现了就是一名合格的工程师

PS括号里面列的只是参考实际如何运行可能会由不同电梯公司的代码决定




点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消