0

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

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

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

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

然后稍后我将遍历数组以操作每个实现的接口方法。

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

4

1 回答 1

1

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

您可以将代码简化为:

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

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

于 2013-07-10T11:54:56.223 回答