Закон Деметры является руководством по разработке программного обеспечения, особенно в объектно-ориентированном программировании, он направлен на снижение зависимости между объектами, делая системы более модульными, более простыми в обслуживании и менее склонными к ошибкам.

Понимание закона деметры

Закон Деметры, часто обобщаемый как «только поговорите со своими ближайшими друзьями», побуждает объекты общаться только со своими непосредственными сотрудниками.

  • Сама по себе
  • Объекты, передаваемые в качестве параметров
  • Объекты, которые он создает
  • Объекты прямого компонента

Придерживаясь этого правила, зависимости объекта сводятся к минимуму, что снижает риск тесной связи и облегчает изменение или расширение кода.

Реализация закона деметры

Реализация Закона Деметры предполагает проектирование классов и методов, которые не проникают глубоко в графы объектов. Например, вместо вызова:

order.getCustomer(.getAddress(.getCity()]

Лучше предоставить способ, который возвращает необходимую информацию напрямую:

order.getCustomerCity()

Рефакторинговые советы

  • Инкапсулировать сложные цепи внутри самого класса.
  • Создавайте методы, которые выдают только необходимые данные.
  • Используйте шаблоны дизайна, такие как Facade или Mediator, чтобы уменьшить зависимость.
  • Сосредоточьте внимание на одной ответственности.

Преимущества следования закону деметры

Придерживаясь этого закона, мы имеем ряд преимуществ:

  • Уменьшает связь между классами.
  • Улучшает читаемость и ремонтопригодность кода.
  • Упрощает тестирование блоков путем изоляции объектов.
  • Упрощает рефакторинг и расширение кода.

Таким образом, реализация Закона Деметры в объектно-ориентированном дизайне способствует более чистому, более модульному коду. Он побуждает разработчиков тщательно продумывать взаимодействия и зависимости объектов, что приводит к созданию более надежных программных систем.