繁体   English   中英

如何填充接口列表?

[英]How to populate a list of interfaces?

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

我有一个与接口相关的任务的实现,当我需要使用类时,我只将DI用于此类接口。

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

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

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

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

当您要创建新对象时,针对new关键字遇到了什么?

您可以将代码简化为:

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

尽管有一些用途,但使用反射几乎总是一个真正的坏主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM