我有一些导入器,其中包含用于需要从文件导入数据的不同数据结构的逻辑。到目前为止,它们实现了我的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,但不确定如何将其应用于我的具体情况。如何在不影响当前接口和类的情况下进行更改?