І ніби знав. І ніби це майже очевидно. Але цікаво.
Пішов перевіряти, а як в моєму коді і взагалі на проекті…
Не викликайте в коді А.В().С().
Це призводить до надлишкової звʼязності.
Додайте публічний метод у клас В. Нехай В звертається до класу С в ньому.
Винятки:
- клас А — це DTO або будь-яка інша структура даних.
- Метод В() повертає той самий А. Приклад
let a = ‘Some string’;
a.slice(1, 2).toUpperCase() - A або В — це класи з ядра мови або фреймворку. Вони малоймовірно будуть змінюватися протягом всього життя проекту.
Перекладено з: Правило Деметри при розробці програмного забезпечення (Law of Demeter. LoD. Do not speak with strangers)