Что такое GRASP

Ответ

GRASP (General Responsibility Assignment Software Patterns) — это набор принципов для распределения обязанностей между классами и объектами в ООП. Основные паттерны:

  1. Information Expert — назначать обязанность классу, который владеет необходимой информацией.
  2. Creator — класс должен создавать объекты, которые он содержит или агрегирует.
  3. Controller — использовать промежуточный класс для обработки системных событий.
  4. Low Coupling — минимизировать зависимости между классами.
  5. High Cohesion — класс должен выполнять одну четкую задачу.

Пример Creator:

class Order {
  constructor() {
    this.items = [];
  }

  addItem(product) {
    const item = new OrderItem(product); // Order создаёт OrderItem
    this.items.push(item);
  }
}

GRASP помогает проектировать гибкие и поддерживаемые системы.