有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用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) 个答案

  1. # 1 楼答案

    合理的东西:

    - public interface IRoadObject
    
    - public class People implements IRoadObject
    
    - public class Vehicle
    
    - public class Truck extends Vehicle implements IRoadObject
    
    - public class Sedan extends Vehicle implements IRoadObject
    

    然而,这仍取决于需求。没有你明确的要求,我想这很简单