我正在研究停车场的例子,并且在我设计时做了一些假设。
在将属性分配给项目/对象时,我有几个问题。
1) 如果parkingSpace不是由系统分配的,即用户刚刚进入Lot,找到一个合适的地方(汽车/自行车/卡车/残疾人)并停放他的汽车。
我认为我不需要 ParkingSpace 对象,但相反,我可以为每个 category_of_parking_space 保留 no_of_free_places 的计数。
由于停车位很大,我们只维护三个变量。
- no_of_free_slots_Car
- no_of_free_slots_Bike
- no_free_slots_Truck
- no_free_slots_Handicapped
当有车辆进来时,我们只是减少上述值之一(这意味着,在可用的 X 个地方中,用户选择一个并停在那里),当车辆出去时,我们增加相应的值。(简而言之,停车场不是任何人分配的,车辆只是去那里符合条件的地方和公园之一)
2)假设我们有一个全局停车计时器。
--> start_time/end_time 应该是 Vehicle 的属性吗?
或者
--> vehicle_id, start_time, end_time 是 ParkingMeter 的一部分。
3) 假设需要parkingSpace 对象,4_wheeler、2_wheeler、handicapped 应该是一个枚举类型,还是一个单独的类。
如果是枚举,我们可以使用 findEmptySlot(parkingSpace_type);
如果它们完全是单独的类,并且 ParkingLot 有一个方法 findEmptySlot();
我们如何才能获得合适的 Slot?
ParkingMeter 将负责设置车辆的开始、结束时间,对吗?
如果有多个金额,1 小时 - 20 美元、2 小时 - 30 美元、3 小时 - 40 美元、5 小时 - 50 美元,
是否将这些部分包含在 ParkingMeter 类中,或者将它们包含在单独的类“ParkingPrice”中