|
13 | 13 | 1. [Порождающие паттерны (Creational)](#Порождающие-паттерны)
|
14 | 14 | 1. [Абстрактная фабрика (Abstract Factory)](#Абстрактная-фабрика)
|
15 | 15 | 2. [Одиночка (Singleton)](#Одиночка)
|
| 16 | + 3. [Строитель (Builder)](#Строитель) |
16 | 17 | 2. [Структурные паттерны](#Структурные-паттерны)
|
17 | 18 | 1. [Адаптер (Adapter)](#Адаптер)
|
18 | 19 | 2. [Декоратор (Decorator)](#Декоратор)
|
@@ -268,6 +269,12 @@ public class SectionDatabase
|
268 | 269 | :white_check_mark: __Преимущества паттерна Singleton__: класс гарантированно имеет только один экземпляр и не более, у нас есть точка доступа к единственному экземпляру (в нашем случае это метод Initialize) <br>
|
269 | 270 | :x: __Недостатки__: нарушение принципа единой ответственности (Single Responsibility Principle), требуется особая обработка в многопоточной среде.
|
270 | 271 | ___
|
| 272 | +### Строитель |
| 273 | +__Строитель (Builder)__ - это порождающий паттерн проектирования, который позволяет разделить создание экземпляра класса на несколько шагов. Данный паттерн может быть полезен, когда созданние какого-либо экземпляра класса требует много разных этапов и когда также важно, в каком порядке эти этапы будут выполняться.<br> |
| 274 | +> :x: Проблема заключается в том, что у нас может быть какой-то сложный объект и его создание может привести к огромному количеству кода в конструкторе |
| 275 | +Паттерн Builder (Строитель) состоить из двух участников: |
| 276 | +* __Строитель (Builder)__ – предоставляет методы для сборки частей экземпляра класса; |
| 277 | +* __Распорядитель (Director)__ – определяет саму стратегию того, как будет происходить сборка: определяет, в каком порядке будут вызываться методы Строителя. |
271 | 278 | ## Структурные паттерны
|
272 | 279 | __Структурные паттерны__ (Structural) - цель их применения заключается в том, что благодаря им вы можете совмещать и сочетать сущности вместе.
|
273 | 280 | ___
|
|
0 commit comments