有 Java 编程相关的问题?

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

java最好有多个具有相同依赖关系的嵌套类,还是一个具有更大范围的嵌套类?

在我的Spring boot应用程序中,我创建了一个工厂,用于创建具有相同接口和依赖项的不同对象,如下所示

@Component
public class FarmFactory {

    @Autowired
    private FarmRepo farmRepo;

    public IFarm create(FarmType type) {
        if (type == type.APPLE) {
            return new AppleFarm(farmRepo);
        } else if (type == type.ANIMAL) {
            return new AnimalFarm(farmRepo);
        } else {
            return new EmptyFarm(farmRepo);
        }
    }
}

我想知道是否最好通过将FarmRepo依赖项注入farm的每个子类(apple、animal、empty)来限制其范围。或者,最好在工厂的更高范围内保留一个依赖项

或者,可以将依赖项FarmRepo传递到类型为的create方法中,但不确定依赖项范围的经验法则是什么


共 (1) 个答案

  1. # 1 楼答案

    我假设您的IFarm实现是模型类。在模型中有一个存储库不是一个好做法。您应该考虑将不同的IFARM实现创建到FAMREPO。

    如果IFarm实现是某种管理业务逻辑的服务类,那么您应该让spring处理它,将FarmRepo实例注入到它们中。在这种情况下,你最好考虑使用抽象类,而不是使用IFARM,因为FravePo是它们之间的一种常见依赖关系。p>

    使用一个简单的工厂方法来实例化所需的运行时类型并没有错,如果需要,它需要在某个地方进行,它可以帮助您获得OCP(开-关原则)方面的有效设计,防止您根据类型参数更改行为,而不是使用多态性