Skip to content

Commit 5eb010e

Browse files
authored
Update patterns.md
1 parent 9eb7326 commit 5eb010e

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

patterns.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,12 +344,14 @@ __Factory Method__ — это порождающий паттерн проект
344344
В шаблоне Factory Method создается интерфейс Creator, который определяет методы для создания объектов. Эти методы могут быть реализованы различными классами Creator. Конкретные классы Creator реализуют методы для создания конкретных объектов.
345345

346346
__Проблема__
347+
347348
Представьте, что вы создаёте программу управления грузовыми перевозками. Сперва вы рассчитываете перевозить товары только на автомобилях. Поэтому весь ваш код работает с объектами класса Грузовик.
348349
В какой-то момент ваша программа становится настолько известной, что морские перевозчики выстраиваются в очередь и просят добавить поддержку морской логистики в программу.
349350
Большая часть существующего кода жёстко привязана к классам Грузовиков. Чтобы добавить в программу классы морских Судов, понадобится перелопатить всю программу. Более того, если вы потом решите добавить в программу ещё один вид транспорта, то всю эту работу придётся повторить.
350351
В итоге вы получите ужасающий код, наполненный условными операторами, которые выполняют то или иное действие, в зависимости от класса транспорта.
351352

352353
__Решение__
354+
353355
Паттерн Фабричный метод предлагает создавать объекты не напрямую, используя оператор `new`, а через вызов особого фабричного метода. Не пугайтесь, объекты всё равно будут создаваться при помощи `new`, но делать это будет фабричный метод.
354356

355357
![image](https://user-images.githubusercontent.com/116163780/235921814-262d7754-d6f7-496b-a71e-da54608a6536.png)

0 commit comments

Comments
 (0)