加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#中的插件模式

发布时间:2020-12-15 08:24:18 所属栏目:百科 来源:网络整理
导读:问题: 我正在构建一个接受文件,翻译并执行它的框架.框架应该能够处理任何类型的文件,为此我提供了一种上传包含用于翻译和执行文件的类和方法的DLL的方法.我在寻找,是定义插件界面的最佳方式 解决方案A: 定义一组公开可用的接口.插件应该实现这些接口. 解决
问题:
我正在构建一个接受文件,翻译并执行它的框架.框架应该能够处理任何类型的文件,为此我提供了一种上传包含用于翻译和执行文件的类和方法的DLL的方法.我在寻找,是定义插件界面的最佳方式

解决方案A:
定义一组公开可用的接口.插件应该实现这些接口.

解决方案B:
定义一些公开可用的抽象类.插件应该继承并覆盖这些类上的抽象方法.

解决方案C:rcravens
在代码内部传递接口,创建一个公共可用的抽象类,以允许插件可扩展性.选择
此解决方案仅在接口之前选择,因为它支持基本实现(在这种情况下很方便).它仅在抽象类之前被选中,因为它允许在代码中进行模拟.组合框架非常出色,但对于像这个应用程序那样只需要有限扩展性的轻量级东西来说有点过头了.

解决方案D:Jay和Chris Shain
实现组合框架(例如Managed Extensibility Framework(MEF))并围绕它构建

如果出现任何新的解决方案,我会将它们添加到此列表中.答案将归于最能证明其解决方案合理的人(可能具有优势和局限性)

提前致谢,
技术考试伙计

解决方法

在最低级别,我相信你需要接口.这允许大多数模拟框架轻松提供假货.在你的代码周围,你应该传递接口.如果您需要一些可以重构为抽象基类的基本实现,那么就这样做.抽象基类和接口不是互斥的概念.有时候两者都有意义.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读