用Java实现类的接口
我想写一个驾驶模拟程序,我需要一些设计方面的帮助。我有一个名为RoadObjects的界面,目前包含车辆和哺乳动物。我需要实现不同类型的汽车,如卡车、轿车、半挂车。它们有一些共同的方法,也有一些独特的方法。稍后,我将添加其他种类的载体和哺乳动物。我不想使用继承,我正试图根据设计原则和模式(如开闭原则和工厂)来实现这一点。现在我的问题是,我应该这样设计它:
RoadObject interface
Vehicle extends RoadObject
Mammal extends RoadObject
SedanImpl implements Vehicle
TruckImpl implements Vehicle
People implements Mammal
或者我不应该有车和人的界面,这样做
RoadObject interface
SedanImpl implements RoadObject
TruckImpl implements RoadObject
People implements RoadObject
新问题: 我想使用工厂模式,例如选择哪种车辆。所以我制作了一个Vechiclempl和VechiclemplFactory,它可能看起来像这样:
RoadObject interface
Vehicle extends RoadObject
VehicleImpl implements Vehicle
Mammal extends RoadObject
SedanImpl implements Vehicle
TruckImpl implements Vehicle
People implements Mammal
这是一种糟糕的设计吗?因为VehicleImpl将有很多SedanImpl、TruckImpl等的重复方法,或者如果我想有一个创建Vehicle的工厂,这应该在哪里
# 1 楼答案
合理的东西:
然而,这仍取决于需求。没有你明确的要求,我想这很简单