Обзор шаблонов дизайна - PullRequest
       14

Обзор шаблонов дизайна

0 голосов
/ 25 октября 2011

У меня есть два процесса, отличающиеся только реализацией их стилей обработки ех. 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 голосов
/ 25 октября 2011

Я бы использовал свой собственный Composite для списка и дал бы ему следующие методы:

class Composite {
   Composite filter(Filter f);

   void apply(Function f);
}

Вы можете выделить фильтрацию и применить функции, которые дают вам больше опций расширяемости и составных дескрипторов.итерация для вас.Сам класс Composite может обрабатывать отчеты о результатах применения различных фильтров.

...