Інженерний дизайн та аналіз
Впровадження Закону про деметр для зменшення залежності об’єкта в об’єктно-орієнтованому дизайні
Table of Contents
Закон Demeter – це конструкторська дирекція для розробки програмного забезпечення, зокрема, у об’єктно-орієнтованому програмування. Вона спрямована на зменшення залежностей між об’єктами, що робить системи більш модульними, простіше підтримувати та менш схильними до помилок.
Розуміння закону про деметр
Закон про деметр, часто підбиває як «тільки говорять про ваших близьких», – заохочує об’єкти, які спілкуються тільки з прямими колегами. Це означає, що об’єкт повинен викликати лише способи:
- Сама
- Об'єкти, що пропускаються як параметри
- Об'єкти, які він створює
- Його прямі компоненти
При дотриманні цього правила, суб’єкт мінімізації, зменшення ризику щільного згортання та полегшення коду, що полегшує зміну або розширення.
Реалізація закону про деметр
Впровадження Закону про деметр передбачає проектування класів та методів, які не досягають глибоко в об'єктні графіки. Наприклад, замість виклику:
order.getCustomer().Address().getCity()
Для забезпечення способу, що повертає необхідну інформацію безпосередньо:
order.getCustomerCity()
Рефакторингові поради
- Конкапсулювати складні ланцюжки в самому класі.
- Створіть методи, які викладають тільки необхідні дані.
- Використовуйте шаблони дизайну, такі як Фасад або посередник для зменшення залежностей.
- Зберігати заняття, спрямовані на єдину відповідальність.
Переваги застосування закону про деметр
До цього закону пропонують кілька переваг:
- Зменшує муфту між класичами.
- Підвищує читабельність коду та збереження працездатності.
- Зробляти тестування блоку простіше ізолювати об'єкти.
- Підходить для полегшення рефакторингу та розширення коду.
В резюме, реалізовано Закон про деметра в об’єктно-орієнтованому дизайні, сприяє очищенню, більш модульному коду. Він стимулює розробники, які ретельно продумують про взаємодію об’єкта та залежності, що призводить до більш міцних систем програмного забезпечення.