有人可以指出我正确的方向,我应该看到什么样的设计模式。
有一个基础应用程序,我们可能开发了多个业务模块。每个模块都是独立开发的,需要将这些模块合并到一个应用程序中。模块可能还需要相互交互。
因此,可以有多种组合,从长远来看,维持每种组合是不可能的。
我已经确定了模块之间的交互,并且正在考虑使用抽象类来分离它们。这意味着当我合并2个模块时,我只需要复制派生类,它们应该可以工作。这样的设计模式有名称吗?
是否有其他设计模式可以让我受益?
答案 0 :(得分:0)
Plugin将允许宿主应用程序在单独的模块中动态加载功能(符合接口)。
如果您正在使用.NET winforms开发Windows,建议您查看Smart Client Software Factory
答案 1 :(得分:0)
易。
插件系统:
IApplicationHost
接口,该接口定义了一组基本方法(如Resolve
和Register
方法,以及控制/依赖注入的反转。)IPlugin
接口,其中包含Setup(IApplicationHost host)
方法。每个插件都使用它来设置插件。Start
方法添加到IPlugin
。 3)。你首先为每个插件调用Setup
让他们注册他们的接口实现等。接下来要做的是再次遍历所有插件,为每个插件调用Start
方法。
使用Assembly.Load
加载所有插件。只需将plugin_XXXX.dll
等所有插件命名即可轻松识别它们。
插件架构
由于插件可以互相使用,因此您需要一些方法来支持它。最简单的方法是使用“分离的接口”模式,这意味着将所有域对象和服务接口放在单独的程序集中。这也使得在发布新版本的插件时更容易保持向后兼容性。简单地说,永远不要改变界面,而是扩展它们。
然后为实际插件创建一个类库。它应该依赖于它自己的接口程序集,应用程序程序集以及它所依赖的插件的所有规范程序集。