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

“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:

– Каскадні зміни поведінки.

– Низька ефективність передачі даних.

– Складно визначити гранулярність шарів.

–  Важко зрозуміти всю систему в цілому.