Java最佳实践库创建,用于灵活的类创建(工厂模式、抽象和接口)

Java最佳实践库创建,用于灵活的类创建(工厂模式、抽象和接口),java,factory-pattern,dynamic-binding,Java,Factory Pattern,Dynamic Binding,假设我是一家汽车制造商的Java软件开发人员。我的任务是创建一个库,供许多内部应用程序使用。对于制造的每种类型的汽车模型,我都创建一个表示该模型的java对象。我必须不仅能够跟踪当前模型,而且能够跟踪原型模型。原型模型将有一个名称,一旦投入生产,很可能会发生变化。我需要能够使用这个库来解释原型和flex在投入生产时的名称变化 我的问题是,什么是最好的方法 这是我的想法 我一直在读几本书,想知道如何最好地处理这种情况。我立刻想到了使用工厂模式。我将有一个CarModelFactory类,它将为每个

假设我是一家汽车制造商的Java软件开发人员。我的任务是创建一个库,供许多内部应用程序使用。对于制造的每种类型的汽车模型,我都创建一个表示该模型的java对象。我必须不仅能够跟踪当前模型,而且能够跟踪原型模型。原型模型将有一个名称,一旦投入生产,很可能会发生变化。我需要能够使用这个库来解释原型和flex在投入生产时的名称变化

我的问题是,什么是最好的方法

这是我的想法

我一直在读几本书,想知道如何最好地处理这种情况。我立刻想到了使用工厂模式。我将有一个CarModelFactory类,它将为每个模型返回一个具体的对象。例如:

public class CarModelFactory() {

    public CarModel createCivicModel() {}
    public CarModel createAccordModel() {}
    public CarModel createPrototype1() {
        return new ModelX();
    }
    public CarModel createPrototype1() {
        return new ModelY();
    }
这是最好的办法吗?我觉得应该有另一层抽象。我看到的问题是:

1) 如果ModelX投入生产,我会为它创建一个方法,并在createPrototype1方法中放入其他内容,现在调用该方法的程序会得到错误的对象

2) 如何处理ModelX更改其名称


谢谢你抽出时间

工厂模型听起来不错,但我建议使用
createCarModel(字符串模型)
方法,在地图中查找适当的对象。然后重命名一个汽车模型是在地图中简单的添加/删除。当然,通过适当的同步,可以防止重命名和get发生冲突


地图很可能是
map这听起来像是一个家庭作业。我确实同意这样的说法,不幸的是,这是一个真实的场景,尽管这是一个虚构的商业模式。我与一位同事探讨了这种情况,他建议只将模型作为通用“car”类中的字段。这是可行的,但是我觉得它可能会限制未来类开发的灵活性。例如,如果我想创建特定于模型的方法呢?我也是,这纯粹是我的观点,它是一种更干净的方法来创建具体的类,所有这些类都实现了一个公共接口。不过,我想听听其他的意见。非常感谢!您对处理此设计给出了非常清晰的描述。我只是想认输,让模型成为具体汽车实现的一个属性。我相信你的建议会很好地结合在一起。再次感谢你的帮助。