需求分析:
1.异步随机生成按照各个路线行驶的车辆。
2.交通灯只考虑红灯和绿灯,不考虑黄灯
3.只考虑左转车辆的控制信号灯,右转车辆不受信号灯控制
4.每辆车通过路口时间为10s
5.随机生成车辆时间间隔以及红绿灯交换时间间隔自定
如下图所示:
上图将复杂的交通逻辑转化为只需要考虑四条路线的交通逻辑;简化了模型的构造
我们需要将模型转化为面向对象的类
面向对象设计把握一个重要的经验:谁拥有数据,谁就对外提供操作这些数据的方法。
下面进行分析:
我们所分析的目标是整个交通系统,里面所包含的实体有车、交通灯,交通路
对车而言:由于我们不需要描述车自身的性质,比如说,对车轮记录其单位时间里所转动的次数。所以,我们可以把车用一串字符串表示
交通灯:其本身含有红绿灯的转换,以及控制每条路线所对应的同步路线和下一条路线,故我们把交通灯作为一个对象,其含有操作交通灯的方法和属性
路:路上包含许多车,故我们需要将其在内部定义一个集合,并定义相应的方法操作车,故我们将其定义为一个类
以上定义了所用到的类,但是,对于交通灯而言,我们还需要一个专门控制交通灯的转换的类。
下面我们看具体类的实现:
交通灯:由于该模型涉及到12条路线的交通灯操作,如果将其设计为类,将变得比较复杂。枚举是一种特殊的类,它可以包含多个其本身的对象,他为我们在这方面提供了方便,故想到用