24 lines
1.0 KiB
Markdown
24 lines
1.0 KiB
Markdown
|
# Фабричный метод
|
|||
|
|
|||
|
Порождающий паттерн проектирования, который определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов.
|
|||
|
|
|||
|
Паттерн **Фабричный Метод** определяет интерфейс создания объекта, но позволяет субклассам выбрать создаваемый экземпляр. Таким образом, Фабричный Метод делегирует операцию создания экземпляра субклассам.
|
|||
|
|
|||
|
## Принципы
|
|||
|
|
|||
|
- Код должен зависеть от абстракций, а не от конкретных классов
|
|||
|
|
|||
|
## Схемы
|
|||
|
|
|||
|
![scheme-1](scheme-1.png)
|
|||
|
|
|||
|
![scheme-2](scheme-2.png)
|
|||
|
|
|||
|
![scheme-3](scheme-3.png)
|
|||
|
|
|||
|
![scheme-4](scheme-4.png)
|
|||
|
|
|||
|
![scheme-5](scheme-5.png)
|
|||
|
|
|||
|
![scheme-6](scheme-6.png)
|