c# - 更改我的界面以处理新要求
问题描述
我有包含需要从文件导入数据的不同数据结构的逻辑的导入器。到目前为止,他们实现了我的 IImporter 接口:
public interface IImporter {
string[] Header {get;}
List<object> ImportData(File file);
}
然后我可以在我的控制器中使用 IoC 来传递接口并使其可测试:
public FileAController(IImporter AImporter)
...
public FileBController(IImporter BImporter)
...
此外,我将此接口传递给其他一些引用 Header 属性以获取某些逻辑的类。
然而,现在引入了另一种导入文件类型,但这也需要一些额外的上下文,比如说一个 ImportPreference,它决定了标题和导入逻辑。但是,我无法实现当前的 IImporter 接口,并且我不想更改接口方法以接收额外的参数,因为它只会用于这个特定的导入器。
我已经查看了访问者模式,但我不确定如何将其应用于我的具体案例。如何在不影响当前接口和类的情况下进行此更改?
解决方案
推荐阅读
- graph-theory - 图中的总边数?
- python - Python Pandas 如果 df1.col 以(字符串)开头,使用该字符串创建 df2.col?
- google-cloud-platform - Pub/Sub 订购和多区域
- latex - 在 rmarkdown 中禁用 lmodern
- javascript - 未捕获的类型错误:无法读取 XMLHttpRequest.xhr.onload 处未定义的属性“url”
- android - 从 GET Method Retrofit Android 获取主键
- python - 是否可以在 Python 中将通用 C[T] 静态类型为 T ?
- node.js - 在 node.JS 串行上发送二进制文件
- python - 散景 CheckBoxGroupButton
- html - 允许子元素溢出,同时保持父元素的可滚动性