2011-10-25 66 views
0

我有两个进程,只有不同的处理风格执行 前。 Process1 - 处理需要单向处理的项目列表 和处理2处理需要以另一种方式处理的项目列表设计模式审查

我想处理项目列表,然后让它们通过处理1和处理2取决于物品的特定属性。

然后我想要在每种样式中处理列表中有多少项目的组合输出。

我选择使用“Chain of Resp”模式。我想知道如果这是一个不错的选择

Dim proc1 As New Process1 
Dim proc2 as New Process2 

proc1.nextProcessing(proc2) 
For each itm in itmlst 
    proc1.ProcessItem(itm) 
Next 

proc1.DoSomething() 
proc2.DoSomething() 

--result is an object that resturns the list of items processed by that process. 
Dim result1= proc1.EndPRocess() 
Dim result2= proc2.EndProcess() 
+0

“响应链”部分在哪里?我瞎了吗? –

+0

它似乎是好的,但更多的代码可能会改变我的意见 –

回答

0

我会用写的名单我自己Composite,并给它下面的方法:

class Composite { 
    Composite filter(Filter f); 

    void apply(Function f); 
} 

可以分离出过滤和应用功能,这为您提供更多可扩展性选项,并且组合可以为您处理迭代。 Composite类本身可以处理应用不同过滤器的结果的报告。

+0

为什么Composite.filter返回过滤项目的组合?为什么不只是返回一个列表? – superartsy

+0

复合是一个列表的包装。 –