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 на каждую строку.