在这个著名的Parking Lot示例中,请帮助我理解OOPS的力量。我昨天读了这篇文章,试图找出完美的底层设计。
ParkingLot - ParkingLot具有ParkingSpaces (ParkingSpaces列表)- exit() -exit()- Update() - int capacity
ParkingSpace -long id -String类型(2轮、4轮等) -Vehicle (有车辆参考)
Vehicle (接口-任何类型的车辆(两轮车、四轮车)- park() - Unpark()抽象方法-具有ParkingLot和ParkingSpace引用
轿车、卡车等不同种类的车辆实现车辆。
这里有什么我需要遵循的设计模式吗? here...is。在这个例子中我们是如何实现多态性的。
发布于 2010-12-16 03:01:09
面向对象编程在这种情况下很有帮助,因为您的vehicle接口允许您为许多不同的车辆定义类似的操作,而不必为每个单独的车辆类型编写这些方法/函数。
听起来你已经很好地处理了你的类(ParkingLot,ParkingSpace,Car,Truck)和接口(Vehicle)。如果不同类型的停车位有不同的字段,您可以考虑ParkingSpace接口,然后由MotorcycleSpace、CompactSpace等实现,但您现在使用它的方式是正确的。多态也会出现在你的界面中。
编辑:关于组合,您有一个具有ParkingSpaces的ParkingLot。如果您的Vehicle类有Wheels或Options或其他一些子类,这将是额外的组合。
https://stackoverflow.com/questions/4453654
复制相似问题