已关闭8年。
设计一个OO parking 场。它将具有哪些类和功能。应该说满了,空了,还可以找到代客 parking 的地方。该 parking 场有3种不同类型的 parking 位:常规,残疾人和紧凑型。
谢谢!
最佳答案
这是使齿轮转动的快速入门...
ParkingLot是一类。
ParkingSpace是一类。
ParkingSpace有一个入口。
入口有一个位置,或更确切地说,是与入口的距离。
ParkingLotSign是一个类。
ParkingLot有一个ParkingLotSign。
ParkingLot具有有限数量的ParkingSpaces。
HandicappedParkingSpace是ParkingSpace的子类。
RegularParkingSpace是ParkingSpace的子类。
CompactParkingSpace是ParkingSpace的子类。
ParkingLot会保留一系列的ParkingSpaces,以及一个单独的闲置的ParkingSpaces,它们之间的距离为其入口的距离。
通过调用.Full()、. Empty()或.Normal(),可以告诉ParkingLotSign显示“满”,“空”或“空白/正常/部分占用”。
帕克是一类。
派克可以Park()。
派克可以Unpark()。
Valet是Parker的子类,可以调用ParkingLot.FindVacantSpaceNearestEntrance(),该函数返回ParkingSpace。
帕克有一个ParkingSpace。
派克可以调用ParkingSpace.Take()和ParkingSpace.Vacate()。
派克会调用Entrance.Entering()和Entrance.Exiting(),ParkingSpace会在有人拿走或腾空它时通知ParkingLot,以便ParkingLot可以确定它是否已满。如果是新装满或新装满或新装不满或装满,则应更改ParkingLotSign.Full()或ParkingLotSign.Empty()或ParkingLotSign.Normal()。
HandicappedParker可以是Parker的子类,CompactParker可以是Parker的子类,RegularParker可以是Parker的子类。 (实际上可能是过大了。)
在此解决方案中,Parker有可能应重命名为Car。