设计模式评论

时间:2011-10-25 18:47:03

标签: design-patterns

我有两个进程,只是在处理样式的实现上有所不同 恩。 Process1 - 处理需要通过一种方式处理的项目列表 和流程2处理需要以另一种方式处理的项目列表

我想处理一个项目列表,然后让它们通过流程1和流程2,具体取决于项目的特定属性。

然后,我希望得到每个样式中处理列表中有多少项的组合输出。

我选择使用“响应链”模式。我想知道这是不是一个好选择

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()

1 个答案:

答案 0 :(得分:0)

我会使用自己的Composite编写列表,并为其提供以下方法:

class Composite {
   Composite filter(Filter f);

   void apply(Function f);
}

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