在这个着名的Parking Lot示例中,帮助我理解OOPS的力量。 我昨天读了这篇文章试图找出完美的低级设计。
ParkingLot - ParkingLot有ParkingSpaces(停车位列表) - 出口() - 入口() - 更新() - int capacity
ParkingSpace 长的身份 - 绳型(2轮车,4轮车等) -Vehicle(有Vechicle参考)
车辆(接口 - 任何类型的车辆(两轮车,四轮车) - 公园() - Unpark() 抽象方法 - 参考ParkingLot和ParkingSpace
汽车,卡车不同类型的车辆实施车辆。
我在这里找不到任何东西......我需要遵循任何设计模式吗? 在这个例子中我们如何实现多态性。
答案 0 :(得分:2)
面向对象编程在这种情况下有所帮助,因为您的车辆界面允许您为许多不同的车辆定义类似的操作,而无需为每种类型的车辆编写这些方法/功能。
听起来你的课程(ParkingLot,ParkingSpace,Car,Truck)和你的界面(车辆)都有很好的处理能力。如果不同类型的停车位有不同的区域,您可以考虑使用ParkingSpace界面,然后通过MotorcycleSpace,CompactSpace等实现,但现在如何使用它并不正确。多态性也与你的界面一起出现。
编辑:关于作文,你有一个ParkingLot有ParkingSpaces。如果您的Vehicle类具有Wheels或Options或其他子类,那么这将是额外的组合。