即插即用架构

时间:2012-01-16 13:03:59

标签: c# design-patterns architecture

我在为C#应用程序创建模块化分析架构时遇到了问题。

目的:

它基本上就像一个动态的即插即用计算器。从一个输入(A)开始,在GUI中构建多个操作过程

  例如,A 2(方形) - > B(乘)A - >; C(除以)B - > d

单击GUI中的一个执行按钮,输入A,如何到达D?

在GUI一个列表框中,必要的输入为double值和 另一个列表框将使用反射说明square,multiply等加载特定接口的类型。 然后,用户将通过插入现有流程和输入来建立新流程 用A作为输入 - > square - >给出B作为输出 - >使用A,B作为输入 - >乘以 - >给出C作为输出 - >使用C / A - >给出输出D. 在特定进程的实例化期间,它们的输出将使用构造函数动态加载。

示例问题:

public interface IProcess
{ 
 double ExecuteProcess()
}

基础流程类:

public abstract class Process
{
  public double Output {get; set;}
}

流程类示例:

public class Square : Process, IProcess
{
   public double Input {get; set;}
   public double ExecuteProcess()
}

问题

我希望我已正确解释了我的问题。我搜索了一些示例模式但无法找到解决此问题的模式。任何人都可以指导如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

考虑MEF,此链接的MSDN主题甚至有一个看起来可能与您的问题类似的行走。

听起来你需要两个独立的插件类,一个用于操作本身,另一个用于在运行时提供操作元数据,因此您可以正确地组合UI(例如,操作需要多个输入或生成不止一个输出)。对于需要特殊UI的某些操作,甚至可能存在针对特定UI具有类似可扩展性的情况。

相关问题