2012-10-27 150 views
0

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

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

输入=> FACTORY1 =>输出1

输入=> FACTORY2 =>输出2

输入=> factoty3 =>输出3

........

。 .......

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

这是哪种设计模式?

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

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

回答

0

看起来相当简单,因为我看到它,你可能不需要设计模式。

我们可以称此对象为Processor而不是Factory,以免与Factory模式混淆。

所以,你的代码可能是简单地这样的:

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; 
    } 
} 
相关问题