在这种情况下应该使用哪种设计?

时间:2012-10-27 09:38:43

标签: .net design-patterns

我有一个如下的业务逻辑,我想知道应该在这里使用哪种设计模式。

基本上我有一个输入和工厂数量,它们创建从同一基类派生的对象。

输入=> factory1 =>输出1

输入=> factory2 => OUTPUT2

输入=> factoty3 => OUTPUT3

........

........

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

这种情况下哪种设计模式正确?

另一个最匹配的实时示例..

我有一个文件名/模式,有不同的Finder。一个用于查找与模式匹配的单词docs,一个用于查找excel文档。一个用于查找与模式匹配的ppt文档。 最后,应返回所有文档(word,xl,ppts)。

1 个答案:

答案 0 :(得分:0)

看起来相当简单,你可能不需要设计模式。

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

所以你的代码可能就像这样:

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;
  }
}