G.R.A.S.P | шаблоны проектирования

YOUTUBE · 30.11.2025 09:23

Ключевые темы и таймкоды

Введение в GRASP

0:00
  • GRASP — это шаблоны, помогающие распределить обязанности между классами и объектами в объектно-ориентированном проектировании.
  • Шаблоны описаны в книге Крега Лармана «Применение UML или шаблонов проектирования».
  • Автор сначала считал шаблоны несовместимыми с Agile, но позже переосмыслил их.

Переосмысление шаблонов

0:47
  • Автор занялся архитектурой больших приложений и переосмыслил книгу Лармана.
  • Он понял, что шаблоны не так просты, как кажется, и требуют дополнительной классификации.
  • В результате родилась формула, которую автор использует много лет.

Принципы и свойства GRASP

2:16
  • Шаблоны содержат три принципа: одно свойство и пять ролей.
  • Устойчивость к изменениям выделена как свойство, так как её сложно определить на уровне классов.
  • Архитектурное планирование направлено на обеспечение устойчивости к изменениям.

Принципы полиморфизма и связности

4:22
  • Полиморфизм позволяет повторно использовать код через выделение интерфейсов.
  • Низкое зацепление и высокая связность уменьшают взаимодействия между классами.
  • Связанность — это сфокусированность класса на конкретной задаче.

Роли в GRASP

6:17
  • Пять ролей: создатель, контроллер, информационный эксперт, чистая выдумка, посредник.
  • Роли редко сочетаются, чтобы избежать снижения связанности.
  • Информационный эксперт связан с данными и моделями.

Детали ролей

8:04
  • Контроллер принимает управляющие воздействия и передаёт их моделям.
  • Создатель инициализирует объекты и обычно реализуется паттерном абстрактная фабрика.
  • Посредник уменьшает зацепление классов и вырабатывает интерфейсы.
  • Чистая выдумка реализует задачи, не связанные с информационными экспертами.

Практическое применение GRASP

10:15
  • Распределение ролей — основная часть проектирования.
  • Многие роли реализуются с помощью паттернов Gang of Four.
  • Автор надеется, что его пояснения помогут связать теорию с практикой.

Заключение

11:11
  • Анонс видео о применении GRASP в Angular.
  • Призыв к обратной связи и предложениям по темам для будущих видео.