Java教程

电梯里的开发逻辑

本文主要是介绍电梯里的开发逻辑,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

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



有些人应该有这样的经验

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

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

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

电梯的维修 = 线程的挂起

电梯无人时 = 就绪状态

电梯运行时 = 运行状态

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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




这篇关于电梯里的开发逻辑的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!