Я изучил шаблон проектирования фабричного метода, и в то же время я столкнулся с объектом Activator и тем, как его использовать, прочитав учебник (я часто сталкивался с этим объектом в intellisense).
Активатор допускает позднее связывание, что может быть чрезвычайно полезно. Но это потому, что мы не знаем, какой класс мы хотим создать. Точно так же фабричный метод решает ту же проблему в разработке программного обеспечения.
На простом уровне набор ifs или оператора case, а затем создание экземпляра объекта на основе условия if является реализацией фабричного метода, верно?
По связанной теме я прочитал, что полиморфизм может уменьшить связь между объектами за счет исключения операторов case. Есть такой пример?
Спасибо





Если вы знаете во время компиляции все потенциальные классы, которые вы хотите создать, используйте шаблон Factory, он будет быстрее и позволит компилятору проверить безопасность вашего типа.
С другой стороны, если вы не знаете всех классов, которым может потребоваться создать экземпляры (например, если вы пытаетесь предоставить архитектуру плагина), ваш единственный вариант - использовать Activator.
Вот простое практическое правило: выберите фабрику вместо использования Activator (или любого другого типа привязки времени выполнения), если это позволяет сценарий.