基于安装模块的应用程序的设计模式

时间:2011-05-18 05:56:05

标签: design-patterns architecture

有人可以指出我正确的方向,我应该看到什么样的设计模式。

有一个基础应用程序,我们可能开发了多个业务模块。每个模块都是独立开发的,需要将这些模块合并到一个应用程序中。模块可能还需要相互交互。

因此,可以有多种组合,从长远来看,维持每种组合是不可能的。

我已经确定了模块之间的交互,并且正在考虑使用抽象类来分离它们。这意味着当我合并2个模块时,我只需要复制派生类,它们应该可以工作。这样的设计模式有名称吗?

是否有其他设计模式可以让我受益?

2 个答案:

答案 0 :(得分:0)

Plugin将允许宿主应用程序在单独的模块中动态加载功能(符合接口)。

如果您正在使用.NET winforms开发Windows,建议您查看Smart Client Software Factory

答案 1 :(得分:0)

易。

插件系统:

  1. 创建一个IApplicationHost接口,该接口定义了一组基本方法(如ResolveRegister方法,以及控制/依赖注入的反转。)
  2. 创建一个IPlugin接口,其中包含Setup(IApplicationHost host)方法。每个插件都使用它来设置插件。
  3. 也将Start方法添加到IPlugin
  4. 因为插件可以彼此依赖,所以需要

    3)。你首先为每个插件调用Setup让他们注册他们的接口实现等。接下来要做的是再次遍历所有插件,为每个插件调用Start方法。

    使用Assembly.Load加载所有插件。只需将plugin_XXXX.dll等所有插件命名即可轻松识别它们。

    插件架构

    由于插件可以互相使用,因此您需要一些方法来支持它。最简单的方法是使用“分离的接口”模式,这意味着将所有域对象和服务接口放在单独的程序集中。这也使得在发布新版本的插件时更容易保持向后兼容性。简单地说,永远不要改变界面,而是扩展它们。

    然后为实际插件创建一个类库。它应该依赖于它自己的接口程序集,应用程序程序集以及它所依赖的插件的所有规范程序集。