黑马日记——交通灯管理系统

来源:互联网 发布:电子狗通用升级数据 编辑:程序博客网 时间:2024/06/09 04:22

---------------------- andro培训 、java培训、期待与您交流!----------------------
一、交通灯设计思路图:

二、设计思路描述
1,对象:路线,信号灯,车。
2,对象对应关系:车在路上行驶,即路为存储车的一个集合,本题可以将车辆定义在路的内部,以随机出现的方式来安排车辆。共有12条路线,每条路线上对应一个灯,灯包括放行与停止放行(即红灯停,路灯行)。当该路线上的灯为放行时,便从路上除去一辆车,可以将路线定义为集合,因为车辆是有序排列,所以可以定义为ArrayList集合。灯与对应的路线是绑定关系。所以对应有12盏灯,灯与灯之间有一定关联,需要一个控制器来控制灯的放行与不放行,所以需要额外定义一个灯控制类。
三、关于信号灯的深入研究
1,信号灯共有12个分别与相应的路线绑定,他们之间有一定的制约关系:
可同时放行的灯有:组1(S-N与N-S)、组2(S-W与N-E)、组3(E-W与W-E)、组4(E-S与W-N)。
需要的先后顺序为:组1——》组2——》组3——》组4。
每个方向上右转的路线均设置为一直放行,所以四条路线(N-W、W-S、S-E、E-N)不受制约。
由上述分析可知,上述4组路线相互制约,也就是控制其中4盏需要先后顺序的灯按如上顺序放行与不放行即可。
四盏灯规律:如一盏灯为放行,那么它对应的灯也为放行。如果状态为不放行,那么对应的灯也为不放行。
四、关于信号灯控制器的深入研究
信号灯控制器用于控制灯放行的先后顺序,也就是:组1——》组2——》组3——》组4。
首先应为信号灯设置初始值,以组1最先放行为例,隔10秒后组1停止放行,组2开始放行,以此类推,组4停止后继续执行组1。
五、信号灯的定义
根据上述分析,信号灯需要在构造时接受三个参数:对应的灯,下一个要放行的灯,灯的当前状态。
信号灯需要对外提供两个方法:自身放行时对应的灯也要放行;自身停止放行时,对应灯也停止放行,并且使下一组灯放行。
六、有关路线的深入研究
车辆在路上行驶,将车定义在路线的内部,每辆车为单独的线程,10秒内随机出现车辆加入路线中,车辆经过路口的时间为1秒,所以每隔一秒钟检查一次放行的情况,如果为放行状态,则在该路线的集合上移除第一辆车。
七、JDK5线程Executors类
该类定义了新的线程调用形式,以及一些其他的体系共同添加了有关多线程、线程池等的新型用法,新的方式较传统方式效率上略有提高。

---------------------- andro培训 、java培训、期待与您交流!----------------------

原创粉丝点击