更改我的界面以处理新要求

时间:2018-07-18 21:38:52

标签: c# asp.net-core-mvc

我有一些导入器,其中包含用于需要从文件导入数据的不同数据结构的逻辑。到目前为止,它们实现了我的IImporter接口:

public interface IImporter {
   string[] Header {get;}
   List<object> ImportData(File file);
}

然后我可以在控制器中使用IoC来传递接口并使其可测试:

public FileAController(IImporter AImporter)
...
public FileBController(IImporter BImporter)
...

我还将这个接口传递给其他一些类,这些类引用Header属性以获得一些逻辑。

但是,现在引入了另一种导入文件类型,但这还需要一些其他上下文,例如ImportPreference,它确定标头以及导入逻辑。但是,我无法实现当前的IImporter接口,并且我不想更改接口方法以接受额外的参数,因为它将仅用于此特定的导入程序。

我看过Visitor pattern,但不确定如何将其应用于我的具体情况。如何在不影响当前接口和类的情况下进行更改?

0 个答案:

没有答案