Объект должен взаимодействовать только с "ближайшими" объектами: своими полями, аргументами методов, созданными внутри объектами. Не вызывать цепочки типа a.getB().getC().doSomething().
// Нарушение
$street = $user->getAddress()->getCity()->getStreet();
// Соблюдение: делегирование
$street = $user->getStreet(); // User сам обращается к Address/CityСнижает связанность, но может приводить к раздуванию интерфейсов - баланс по ситуации.