java - 如何填充接口(interface)列表?

标签 java oop architecture solid-principles

我对 SOLID 原则还很陌生,我发现我经常遇到以下情况。

我有一个与接口(interface)绑定(bind)的任务的实现,当我需要使用该类时,我只需使用 DI 来实现这样的接口(interface)。

例如,我的问题是当我需要多个实现时该怎么办。

List<IDataSource> dataSources = new ArrayList<IDataSource>();
dataSources.add(new DataSourceOne());
dataSources.add(new DataSourceTwo());
.... and so one...

然后我将循环数组来操作每个实现的接口(interface)方法。

这是不好的做法吗?有没有一种方法可以在不使用 new 关键字的情况下填充列表?例如c#反射。或者是避免这种情况的设计模式?

最佳答案

当您想要创建新对象时,您对 new 关键字有什么看法?

您可以将代码简化为:

List<DataSource> dataSources = Array.asList(
    new DataSourceOne(),
    new DataSourceTwo(),
    ...
);

虽然它有一些用途,但使用反射几乎总是一个非常糟糕的主意。

关于java - 如何填充接口(interface)列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17569768/

相关文章:

php - 在空字段上运行查询时出现错误

java - 如何构建动态域模型 Java Web 应用程序

wcf - 哦问题: applying same logic to 2 similar objects

java - org.eclipse.swt.SWTException : “Widget is disposed” when trying to open AndroidManifest. xml

c++ - 访问我只想存在于派生类中的函数

java - 什么时候使用 multi-catch 什么时候使用 rethrow?

java - ArrayList不会将.get(int)用于列表中的子类对象,但允许我使用.add()

c# - 如何将 ASP.NET 项目拆分为具有不同模块的不同版本

java - 如何检索 DBObject 的架构?

java - 从蓝牙设备读取数据时缓冲区缓慢