intermediate

Law of Demeter

Ограничивайте знание internals collaborators, чтобы code просил nearby objects выполнить behavior, а не ходил по deep object graphs.

Закон Деметры (principle of least knowledge): объект общается с ближайшими коллабораторами, не ходит по глубоким графам — избегайте `order.customer.address.zip`. Лучше `order.getShippingZip()`, чтобы внутренняя структура могла меняться.

Меньше coupling и ripple effects при смене промежуточных объектов.

На интервью: train wreck chain в осмысленный domain method.

Типовые ошибки: Demeter до абсурдных wrapper; ломка уместных fluent API; DTO mapping с утечкой знания графа наверх.

Компромисс — лишние facade methods против свободы рефакторить object graphs.

Чеклист:

  • Без длинных цепочек через объекты.
  • Поведение у владельца данных.
  • Баланс с читаемым API — не wrapper на каждую строку.