我有以下插件接口:
public interface IPlugin
{
IInitializedPlugin Initialize(PluginInitialization pluginInitialization);
}
应用程序可以获取IPlugin
实例(在这种情况下来自IOC容器)但要获得IInitializedPlugin
实例,它必须调用Initialize
方法。 PluginInitialization
是一个简单的结构,具有插件配置。然后IInitializedPlugin
具有实际的插件功能。如何改进这种设计?
答案 0 :(得分:0)
您的设计确实可以正常工作,PRISM (Microsoft桌面应用程序框架)使用类似的方法初始化模块,但是如果您使用.NET进行开发,我会考虑使用MEF (托管扩展性框架),因为使用某个IoC容器会将插件与特定容器耦合,您可以通过{{3}阅读第四条评论来了解更多相关信息。在这个Mark Seemann。