如何填充接口列表?

时间:2013-07-10 11:43:01

标签: java oop architecture solid-principles

我对SOLID原则相当新,我发现我经常遇到以下情况。

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

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

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

然后我将遍历数组以执行每个实现的接口方法。

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

1 个答案:

答案 0 :(得分:1)

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

您可以将代码简化为:

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

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