Патерни проєктування · Middle · Запитання 21 з 75
Що каже закон Деметри про код order.customer.address.city.name?
- ✓Правильна відповідь: Код знає про надто далекі об'єкти - говори із сусідами
- 2Ланцюжок допустимий, якщо всі об'єкти створено в одному модулі
- 3Це порушення лише за використання опціонального ланцюжка
?.
Пояснення
«Говори лише з друзями»: довгі ланцюжки пов'язують код із внутрішнім влаштуванням багатьох об'єктів, і зміна будь-якого з них ламає код, що викликає. Рішення - метод або селектор на кшталт getDeliveryCity(order).