Закон Деметры
Объект должен вызывать методы только у себя, своих полей, своих параметров и созданных им объектов — а не строить «крушение поезда» вида a.b().c().d(). Он же «разговаривай только с друзьями».
Сформулирован в Северо-Восточном университете в 1987 году (в рамках проекта Demeter). Часто нарушается беглыми API и цепочками (билдеры ORM), и это допустимо: закон о том, чтобы не раскрывать внутреннее устройство чужих объектов. Если в метод передан User, а он вызывает user.getAddress().getCity().getZip(), код привязан ко всему графу объектов. Лучше передать методу сразу индекс.