→ Пошук по сайту       Увійти / Зареєструватися
Знання Патерни

Патерни — шаблони проектування. Семантичний конспект розділу

Патерни — шаблони проектування

Шаблони проектування програмного забезпечення (англ. software design patterns) — ефективні способи вирішення задач проектування програмного забезпечення. Шаблон не є закінченим зразком, який можна безпосередньо транслювати в програмний код. Об'єктно-орієнтований шаблон найчастіше є зразком вирішення проблеми і відображає відношення між класами та об'єктами, без вказівки на те, як буде зрештою реалізоване це відношення.

1. Патерни поведінки [Центральне поняття розділу]

Патерни поведінки:
Ланцюжок Відповідальностей — Chain of responsibility



Патерни поведінки:
Команда — Command



Патерни поведінки:
Інтерпретер — Interpreter



Патерни поведінки:
Ітератор — Iterator



Патерни поведінки:
Медіатор — Mediator



Патерни поведінки:
Хранитель — Memento



Патерни поведінки:
Спостерігач — Observer



Патерни поведінки:
Стан — State



Патерни поведінки:
Стратегія — Strategy



Патерни поведінки:
Шаблонний метод — Template method



Патерни поведінки:
Відвідувач — Visitor



Патерни поведінки:
Команда — Command



Патерни поведінки:
Ланцюжок Відповідальностей — Chain of responsibility



Патерни поведінкиЄ такі, що акцентують свою увагу на поведінці


Вони або інкапсулюють поведінку, або дозволяють її розподілити..


Патерни поведінкиBehavioral patterns.

2. Ланцюжок Відповідальностей

Ланцюжок Відповідальностей — Забезпечує обробку об’єкта, шляхом передачі його по ланцюжку доти, доки не буде здійснена обробка якоюсь із ланок

3. Команда

Команда — Дозволяє інкапсулювати всю інформацію, необхідну для виконання певних операцій, які можуть бути виконані пізніше, використавши об’єкт команди


Команда Command.

4. Шаблонний метод

Шаблонний метод — Задає покроково алгоритм, а елементи алгоритму можуть бути довизначені в похідних класах


Шаблонний методTemplate method.

5. Стратегія

Стратегія — Зберігає сім’ю алгоритмів і дозволяє змінювати їх незалежно та переключатися між ними


Стратегія Strategy.

6. Стан

Стан — Дозволяє винести логіку визначення стану об’єкту та його поведінку, характерну для цього стану, в інші класи


Стан State.

7. Спостерігач

Спостерігач — Дозволяє автоматично реагувати багатьом об’єктам на зміну стану певного іншого об’єкта


Цей патерн допоможе централізувати огляд роботи декількох класів та генерувати відповідні події.


Спостерігач Observer.

8. Хранитель

Хранитель — Забезпечує можливість повернення системи до попереднього стану


Хранитель Memento.

9. Медіатор

Медіатор — Централізує взаємодію між компонентами, таким чином послаблюючи їхню зв’язність


Медіатор Mediator.

10. Ітератор

Ітератор — Дозволяє доступатися почергово до елементів будь-якої колекції без вникання в суть її імплементації


Ітератор Iterator.

11. Інтерпретер

Інтерпретер — Дозволяє описати граматику певної мови, за допомогою чого можна записати речення на цій мові та інтерпретувати його значення


Інтерпретер Interpreter.

12. Відвідувач

Відвідувач — Дозволяє відділити певний алгоритм від елементів, на яких алгоритм має бути виконаний


Відвідувач Visitor.

13. Породжуючі патерни [Ключове поняття розділу]

Породжуючі патерни:
Абстрактна Фабрика — Abstract factory



Породжуючі патерни:
Будівельник — Builder



Породжуючі патерни:
Фабричний Метод — Factory method



Породжуючі патерни:
Прототип — Prototype



Породжуючі патерни:
Одинак — Singleton



Породжуючі патерниОсновним завданням таких патернів є спростити створення об’єктів, які необхідні аплікації.


Породжуючі патерниCreational patterns.

14. Абстрактна Фабрика

Абстрактна Фабрика — Надає простий інтерфейс для створення об’єктів, які належать до того чи іншого сімейства


Інколи працюючи із певним набором об’єктів через групу інтерфейсів, хочете створювати об’єкти тільки із іншого набору, щоб пристосувати ваш код до інших умов. Звичайно група інтерфейсів, через які ви оперуєте, залишається та ж сама. Спростити створення відповідного набору допоможе даний патерн.


Абстрактна ФабрикаAbstract factory.

15. Будівельник

Будівельник — Вимальовує стандартний процес створення складного об’єкта, розділяючи логіку будування об’єкта від його представлення


Інколи структура деякого об’єкта дуже складна і залежить від багатьох чинників. Щоб спростити створення такого об’єкту зазвичай використовують цей патерн.


БудівельникBuilder.

16. Фабричний Метод

Фабричний Метод Щоб зручно вибрати одну реалізацію та інстанціювати її, відштовхуючись від простої умови, можна використати цей патерн.


Фабричний Метод Factory method.

17. Прототип

ПрототипДозволяє створювати копії об'єктів, що уже визначені на стадії дизайну.

Використовується коли постає завдання отримати копію уже існуючого об’єкта, або отримати можливість швидко генерувати багато подібних екземплярів..


ПрототипPrototype.

18. Одинак

Одинак — Забезпечує існування єдиного екземпляру класу та єдиного доступу до нього


ОдинакЗабезпечує Функціональність єдиного екземпляра


ОдинакSingleton.

19. Патерни

Патерни — Ефективні способи вирішення задач проектування програмного забезпечення


ПатерниШаблони проектування програмного забезпечення


Поділені на три великі групи: породжуючі, структурні та поведінкові.

20. Патерни поведінки

Патерни поведінки :
Ланцюжок Відповідальностей — Chain of responsibility



Патерни поведінки :
Команда — Command



Патерни поведінки :
Інтерпретер — Interpreter



Патерни поведінки :
Ітератор — Iterator



Патерни поведінки :
Медіатор — Mediator



Патерни поведінки :
Хранитель — Memento



Патерни поведінки :
Спостерігач — Observer



Патерни поведінки :
Стан — State



Патерни поведінки :
Стратегія — Strategy



Патерни поведінки :
Шаблонний метод — Template method



Патерни поведінки :
Відвідувач — Visitor



Патерни поведінки Акцентують свою увагу на поведінці

Патерни поведінки Вони або інкапсулюють поведінку, або дозволяють її розподілити

21. Структурні патерни

Структурні патерни:
Адаптер — Adapter



Структурні патерни:
Міст — Bridge



Структурні патерни:
Компонувальник — Composite



Структурні патерни:
Декоратор — Decorator



Структурні патерни:
Легковаговик — Flyweight



Структурні патерни:
Проксі — Proxy



Структурні патерниОсновним завданням цих патернів є формування найбільш підходящої структури та взаємодії між класами для виконання певних завдань

22. Адаптер.

Адаптер.Використовується, якщо потрібно, щоб один об’єкт міг бути зрозумілим під іншим інтерфейсом.

Надає можливість користуватися об’єктом, який не є прийнятним у нашій системі і який не можна змінити.


Адаптер.Adapter.

23. Міст

Міст — Дозволяє розділити імплементацію від її абстракції, таким чином реалізація може бути змінена окремо від абстракції, оскільки вона не наслідується від неї напряму


Якщо потрібно розділити абстракцію та імплементацію так, що на одному боці матимемо абстракцію, а на іншому декілька реалізацій, причому всі доступні до модифікацій, то слід задуматися над поєднанням таких незалежних абстракції та реалізації за допомогою цього патерну..


МістBridge.

24. Компонувальник

Компонувальник — Дозволяє нам зберігати деревовидну структуру і працювати однаково із батьками та синами у дерев


Якщо елемент містить собі подібні елементи, а вони в свою чергу також можуть містити елементи, то найлегше таку структуру реалізувати за допомогою цього патерну.


Компонувальник Composite.

25. Декоратор

Декоратор — Використовується для швидкої та динамічної можливості розширення існуючої функціональності, без зміни її носителя


Використовується для надання деякої додаткової функціональності нашим об'єктам.


Декоратор Decorator.

26. Легковаговик

Легковаговик — Забезпечує підтримку великої кількості об’єктів шляхом виокремлення спільної інформації для збереження в одному екземплярі


Якщо ваша система використовує багато об’єктів, що мають спільні дані, то такі дані можна винести та зробити загальнодоступними для економії пам’яті за допомогою даного патерну.


ЛегковаговикFlyweight.

27. Проксі

Проксі — Підміняє реальний об'єкт та надсилає запити до нього тоді, коли це потрібно


ПроксіДаний патерн дозволить донести ваші команди до пункту призначення.


Використовуйте цей патерн, якщо відсутня можливість працювати із об’єктом напряму.

Може ініціалізувати реальний об'єкт, якщо він до того не існував.


ПроксіProxy.

28. Фасад

Фасад — Надає єдину точку доступу до підсистеми, тим самим спрощуючи її використання та розуміння.


Фасад Facade.

29. Структурні патерни

Структурні патерни — Основним завданням цих патернів є формування найбільш підходящої структури та взаємодії між класами для виконання певних завдань


Структурні патерниStructural patterns.

По матеріалам книги Андрія Будая "Дизайн патерни – просто, як двері". Матеріал розміщується за домовленістю з автором.
Робота представлена за умовами ліцензії Creative Commons Attribution-NonCommercial 3.0 Unported License.

загрузка...
Сторінки, близькі за змістом