2. Design Patern
Andrey Gladky
KspDevelop@gmail.com 2
В основі доброго розуміння побудови коду, та й дизайну взагалі,
лежить принцип єдиної відповідальності.
Усі дизайн-патерни поділені на три великі групи, а
саме:
Породжуючі - основним завданням таких патернів
є спростити створення об’єктів.
Cтруктурні - формування найбільш підходящої
структури та взаємодії між класами для виконання
певних завдань.
Поведінкові - вони або інкапсулюють поведінку, або
дозволяють її розподілити.
3. Andrey Gladky
KspDevelop@gmail.com 3
Фасад - надає єдину «точку доступу» до
підсистеми, тим самим спрощуючи її використання
та розуміння
Одинак - забезпечує існування єдиного
екземпляру класу та єдиного доступу до нього
Будівельник - вимальовує стандартний процес
створення складного об’єкта, розділяючи логіку
будування об’єкта від його представлення
Шаблонний Метод - задає покроково алгоритм, а
елементи алгоритму можуть бути довизначені в
похідних класах
Декоратор – використовується для надання деякої
додаткової функціональності об'єктам
4. Andrey Gladky
KspDevelop@gmail.com 4
Фабричний метод - вирішує, яку реалізацію
інстанціювати.Вирішують або нащадки фабричного
методу, або він сам, приймаючи якийсь параметер
Абстрактна фабрика - надає простий інтерфейс
для створення об’єктів, які належать до того чи
іншого сімейства.
Адаптер - надає можливість користуватися
об’єктом, який не є прийнятним у нашій системі і
який не можна змінити. Ми адаптуємо його
функціональність через інший, відомий нашій
системі, інтерфейс
Міст - дозволяє розділити імплементацію від її
абстракції, таким чином реалізація може бути
змінена окремо від абстракції, оскільки вона не
наслідується від неї напряму.
5. Andrey Gladky
KspDevelop@gmail.com 5
Ланцюжок Відповідальностей - Уникає зв’язності
відправника запиту із його адресатом, шляхом
надання іншим об’єктам можливість обробити
запит. Передає отримані об’єкти вздовж ланцюжка
допоки якась ланка не обробить об’єкт.
Команда - дозволяє інкапсулювати всю
інформацію, необхідну для виконання певних
операцій, які можуть бути виконані пізніше,
використавши об’єкт команди.
Хранитель - використовується тоді, коли ви хочете
відмінити операції без відображення внутрішньої
структури Власника (Originator — гра у нашому
прикладі). Координація операцій здійснюється
Опікуном (Caretaker — контролер гри), який
надає можливість простого збереження миттєвих
станів системи без уявлення що ці стани собою
являють.