В чем разница между Activator.CreateInstance и фабрикой? Можно ли их использовать взаимозаменяемо? Или нам нужна фабрика?Activator.CreateInstance vs Factory Pattern
ответ
Заводская модель представляет собой узор более высокого уровня. Это дает вам структуру, в которой вы можете решить некоторые проблемы, которые могут возникнуть при создании объекта. Цитирую Wikipedia,
Создание объекта часто требует сложных процессов, не целесообразным включить в слагающих объекта. создание объекта может привести к значительному дублирования кода, может потребоваться информации не доступной для слагающих объекта, не может обеспечить достаточный уровень абстракции, или иначе могут не быть частью забот слагающих объекта.
Некоторые из процессов, необходимых в создания объекта включает определение, какой объект для создания, управления временем жизнью объекта, и управление специализированным накапливанием и разрываться проблемами объекта.
Activator.CreateInstance не относится ни к одной из этих проблем, он просто позволяет создать новый экземпляр типа. Если у вас нет таких проблем, как указано выше (и многие применения «заводского шаблона» не относятся к таким проблемам), Activator.CreateInstance будет в порядке.
Activator.CreateInstance
- статический метод, который создает экземпляр указанного типа с использованием конструктора по умолчанию этого типа.
В то время как factory pattern касается проблемы создания объектов (продуктов) без указания точного класса объекта, который будет создан.
Вы можете «использовать» Activator.CreateInstance
в рамках заводского шаблона для возврата различных типов объектов. See this example. Вы также можете использовать create a generic factory с использованием Activator.CreateInstance
- 1. Factory Pattern vs FactoryMethod Pattern
- 2. Builder pattern vs Factory Mmethod pattern
- 3. Factory pattern
- 4. Factory and Abstract Factory Pattern
- 5. Factory Pattern, выбрав по свойству
- 6. Реализация Настраиваемый Factory Pattern
- 7. Реальное преимущество Factory Pattern
- 8. Abstract Factory Pattern Объяснение
- 9. C# Factory Pattern
- 10. Factory pattern in Python
- 11. Factory Pattern Confusion
- 12. Factory Pattern - переменные типа
- 13. Abstract Factory Design Pattern
- 14. Factory Design Pattern
- 15. Static Factory Pattern
- 16. Хранение Factory Pattern Products
- 17. Testing Factory Pattern
- 18. Factory pattern in java
- 19. Factory Pattern Вопрос
- 20. Custom Factory Pattern Implementation
- 21. «Factory Method» Design Pattern
- 22. C# Factory Pattern новичок
- 23. Threadsafe factory pattern
- 24. Python OOP Factory Pattern
- 25. Исследования Pattern Factory Design
- 26. Abstract factory pattern
- 27. Factory Pattern Понимание
- 28. IoC и Factory Pattern
- 29. Abstract Factory pattern
- 30. java factory pattern issue
Activator.CreateInstance создаст объект для вас из типа. Он вполне может быть включен в шаблон Factory. –