У меня есть объект «Задача», который необходимо разрешить в зависимости от типа задания. Я бы инкапсулировал логику для конкретного типа задач в классе, но каков общепринятый способ сопоставления типа с классом, который реализует логику разрешения?
Мой первый импульс - создать Фабрику, как:
TaskResolverFactory.GetForType(TaskType) // returns IsATaskResolver, which has a Resolve method
Вероятно, внутри Фабрики, заявление Case или что-то в этом роде.
Другая мысль состоит в том, чтобы использовать что-то вроде StructureMap
, но я думаю, что это избыточно для этой ситуации - вы согласны?
Какие еще методы мне не хватает, и каков общепринятый метод замены большого оператора Case / Switch?