.net 在这个场景中应该使用哪种设计?

.net 在这个场景中应该使用哪种设计?,.net,design-patterns,.net,Design Patterns,我有下面这样的业务逻辑,我想知道这里应该使用哪种设计模式 基本上,我有一个输入和许多工厂,这些工厂创建从同一基类派生的对象 输入=>factory1=>Output1 输入=>factory2=>Output2 输入=>Factory3=>Output3 工厂的数量各不相同。 这种逻辑将包含在一个方法中,该方法将创建Output1、Output2。。。并返回它 在这种情况下,哪种设计模式是正确的 另一个最匹配的实时示例 我有一个文件名/模式,有不同的查找程序。一个用于查找与模式匹配的word

我有下面这样的业务逻辑,我想知道这里应该使用哪种设计模式

基本上,我有一个输入和许多工厂,这些工厂创建从同一基类派生的对象

输入=>factory1=>Output1

输入=>factory2=>Output2

输入=>Factory3=>Output3

工厂的数量各不相同。 这种逻辑将包含在一个方法中,该方法将创建Output1、Output2。。。并返回它

在这种情况下,哪种设计模式是正确的

另一个最匹配的实时示例

我有一个文件名/模式,有不同的查找程序。一个用于查找与模式匹配的word文档,一个用于查找excel文档。一个用于查找与模式匹配的ppt文档。
最后,所有文档(word、xl、PPT)都应该返回。

在我看来,这似乎相当简单,您可能不需要设计模式

让我们将此对象称为处理器而不是工厂,以避免与工厂模式混淆

因此,您的代码可以简单地如下所示:

interface Input;
interface Output;
interface Processor {
  Output process (Input i);
}

MainClass {
  List<Processor> processors = initializeProcessors();

  List<Output> process(Input i) {
      List<Output> outputs = ...;
      foreach (Processor p in processors) {
          Output o = p.process(i);
          outputs.add(o);
      }
      return outputs;
  }
}
接口输入;
接口输出;
接口处理器{
输出过程(输入i);
}
主类{
列表处理器=初始化处理器();
列表过程(输入i){
列出产出=。。。;
foreach(处理器中的处理器p){
输出o=过程p(i);
产出.增加(o);
}
返回输出;
}
}