微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#中的插件模式

问题:
我正在构建一个接受文件,翻译并执行它的框架.框架应该能够处理任何类型的文件,为此我提供了一种上传包含用于翻译和执行文件的类和方法的DLL的方法.我在寻找,是定义插件界面的最佳方式

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

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

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

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

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

提前致谢,
技术考试伙计

解决方法

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

原文地址:https://www.jb51.cc/csharp/243443.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐