Здравствуйте, Аноним, Вы писали:
А>важным элементом является тот факт, что задачу определения кому предназнасчен запрос решает сам компонент.
Это плохо. Нужно разделять, а не смешивать ответственность. Можно сделать так:
1) Алгоритм поиска подходящего обработчика предоставляет структуру данных (набор критериев), которая заполняется обработчиком.
2) На основе заполненной структуры данных алгоритм поиска обработчика принимает решение (делает выбор).
Т. обр., обработчик заполняет структуру данных (подбирает значения для критериев), а алгоритм поиска — делает выбор.