2010-09-22 2 views
1

Почему мне кажется, что использование стратегии просто откладывает if/else на Factory? Использование стратегии не означает, что фабрике нужно выяснить, какой конкретный класс необходимо создать, и не делает ли это так, если/else?Шаблон стратегии, заменяющий if/else или case statments

Есть еще одна возможность использовать карту/Список как-то и иметь ключи как имя класса для создания экземпляра и, возможно, иметь класс с использованием Factory pass в имени?

ответ

1

Map \ List - это реализация заводского шаблона.

Использование стратегии patter лучше, чем if \ else, потому что он создает связанный код. С Factory + Startegy вы можете расширять алгоритмы обработки без клика клиентского кода и иметь больше возможностей для настройки динамического кода (без повторной компиляции).

Смежные вопросы