问题:
我正在构建一个接受文件、翻译并执行文件的框架。该框架应该能够处理任何类型的文件,为此我提供了一种上传 DLL 的方法,该 DLL 包含用于翻译和执行文件的类和方法。我正在寻找的是定义插件界面的最佳方式
解决方案 A:
定义一组公开可用的接口。插件应该实现这些接口。
解决方案 B:
定义一些公开可用的抽象类。插件应该继承和覆盖这些类的抽象方法。
解决方案 C: rcravens
在代码内部传递接口,创建一个公开可用的抽象类以允许插件扩展。选择
这个解决方案是在接口之前选择的,只是因为它支持基本实现(在这种情况下很方便)。之所以在抽象类之前选择它,只是因为它可以在代码中进行模拟。组合框架非常好,但是对于像这个只需要有限可扩展性的应用程序这样轻量级的东西来说有点过头了。
解决方案 D: Jay和Chris Shain
实现一个组合框架(例如Managed Extensibility Framework(MEF))并围绕它进行构建
如果出现任何新的解决方案,我会将它们添加到此列表中。答案将交给最能证明其解决方案合理性的人(可能具有优势和局限性)
在此先感谢,
技术测试伙计