在准备面试的时候,这个问题突然浮现在我的脑海中。我正计划设计一个停车场,并假设以下几点:
6(任择)。也要增加残疾人的处境。
这些是我可以提出的一些假设(不确定它们是否足够或者我需要更多)。
我在考虑如何设计这个系统,使车辆一进入停车场入口处。
应向他提供信息,说明最近的空置地点在哪里(例如- 3楼、2排、10点)
我想知道如何设计这样一个系统?我见过许多其他的设计,但我想没有一个能做到这一点。
发布于 2014-09-25 00:19:04
不确定您希望通过第6点实现什么,但通过通常的抽象、继承和多态原则,通过OO设计实现其他目标非常简单。
您可以有一个名为interface的AvailabilityIndicator,它有一个布尔方法isAvailable(),它表示灯光指示器(如果isAvailable()是false,灯泡将显示红色,如果是true,则显示为绿色)。
您可以有一个名为abstract class的ParkingSlot,它实现了AvailabilityIndicator。这可能有水平,行和点号在其中。
您可以有3个类:LargeParkingSlot、CompactParkingSlot和SmallParkingSlot,它们扩展了ParkingSlot。(这并不是说您的功能实际上需要这样做,除非不同的停车位具有您想要建模的不同的行为或数据,但是由于您提到您想要OO方法,所以我提到了它,否则ParkingSlot中的一个简单的ParkingSlot参数就可以了。)
然后是车辆什么时候到达的问题,检查它需要什么类型的插槽,并查找哪些是匹配的可用插槽。您可能希望将它们放在Map数据结构中,该结构将每个插槽类型映射到可用的插槽列表中,以便当一个插槽被取下时,它被移除并放入一个单独的unavailable列表中,以便在车辆到达时快速查找available插槽。
https://stackoverflow.com/questions/26028441
复制相似问题