Что такое Law of Demeter?

Ответ

Объект должен взаимодействовать только с "ближайшими" объектами: своими полями, аргументами методов, созданными внутри объектами. Не вызывать цепочки типа a.getB().getC().doSomething().

// Нарушение
$street = $user->getAddress()->getCity()->getStreet();

// Соблюдение: делегирование
$street = $user->getStreet(); // User сам обращается к Address/City

Снижает связанность, но может приводить к раздуванию интерфейсов - баланс по ситуации.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.