Встречается на собеседованиях • сегодня

Что такое GRASP

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

  1. Информационный эксперт — назначать ответственность классу, который владеет необходимой информацией.
  2. Создатель — класс, создающий объекты, должен их содержать или агрегировать.
  3. Контроллер — использовать промежуточный класс для обработки системных событий.
  4. Низкая связанность — минимизировать зависимости между классами.
  5. Высокая связность — группировать связанные обязанности в одном классе.
  6. Полиморфизм — использовать полиморфизм для обработки альтернативных вариантов поведения.
  7. Чистая выдумка — создавать искусственные классы для соблюдения принципов.

Пример с Информационным экспертом:

python
class Order:
    def __init__(self, items):
        self.items = items

    def calculate_total(self):  # Order знает свои items, поэтому логично считать сумму здесь
        return sum(item.price * item.quantity for item in self.items)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы