Паттерн Layers
Паттерн – це проблема у визначеному контексті з визначеним рішенням. Ця проблема зазвичай добре відома.
“Pattern is not smth you invent, it’s smth you dig from existing solution.”
Переваги використання паттернів:
- дозволяють краще спілкуватися про програмне забезпечення. Без паттернів дуже важко повідомити розмовляти про внутрішню структуру ПЗ. Паттерни являють собою спільну мову.
- обмін досвідом, найкращою практикою.
- допомагають визначити структуру методів роботи під час аналізу програмного забезпечення і подальшого розробки.
Паттерн Layers
Призначення паттерна Layers:

Приклад паттерна Layers:

Проблеми паттерна Layers:
- Система має різні рівні абстракції.
- Запит спускається, повідомлення піднімається.
- Визначення стабільного інтерфейсів для взаємодії між шарами.
- Необхідність добавлення нових шарів або їх заміни.
Рішення паттерна Layers:
– Проектування шарів починається з самого нижнього рівня.
– Створити шари поступово, збільшуючи рівень абстракції.
– Всі компоненти в одному шарі повинні підтримувати однаковий рівень абстракції.
– Жоден з компонентів не поширюється на два шари.
– Необхідно визначити інтерфейси для кожного шару.
– Рефлізувати обробку помилок на нижньому рівні абстракції.
Структура паттерна Layers:

Fig.2 Layers структура Fig.3 CRC Card
Функціональність:
Переваги паттерна Layers:
– Повторне використання шарів.
– Стандартизація завдань і інтерфейсів.
– Тільки локальні залежності між шарами.
– Програмісти і користувачі при використанні можуть ігнорувати інші шари.
– Різні команди розробників можуть обробляти кожен шар окремо.
Недоліки паттерна Layers:
– Каскадні зміни поведінки.
– Низька ефективність передачі даних.
– Складно визначити гранулярність шарів.
– Важко зрозуміти всю систему в цілому.