Инженерный дизайн и анализ
Внедрение закона деметры для снижения объектной зависимости в объектно-ориентированном дизайне
Table of Contents
Закон Деметры является руководством по разработке программного обеспечения, особенно в объектно-ориентированном программировании, он направлен на снижение зависимости между объектами, делая системы более модульными, более простыми в обслуживании и менее склонными к ошибкам.
Понимание закона деметры
Закон Деметры, часто обобщаемый как «только поговорите со своими ближайшими друзьями», побуждает объекты общаться только со своими непосредственными сотрудниками.
- Сама по себе
- Объекты, передаваемые в качестве параметров
- Объекты, которые он создает
- Объекты прямого компонента
Придерживаясь этого правила, зависимости объекта сводятся к минимуму, что снижает риск тесной связи и облегчает изменение или расширение кода.
Реализация закона деметры
Реализация Закона Деметры предполагает проектирование классов и методов, которые не проникают глубоко в графы объектов. Например, вместо вызова:
order.getCustomer(.getAddress(.getCity()]
Лучше предоставить способ, который возвращает необходимую информацию напрямую:
order.getCustomerCity()
Рефакторинговые советы
- Инкапсулировать сложные цепи внутри самого класса.
- Создавайте методы, которые выдают только необходимые данные.
- Используйте шаблоны дизайна, такие как Facade или Mediator, чтобы уменьшить зависимость.
- Сосредоточьте внимание на одной ответственности.
Преимущества следования закону деметры
Придерживаясь этого закона, мы имеем ряд преимуществ:
- Уменьшает связь между классами.
- Улучшает читаемость и ремонтопригодность кода.
- Упрощает тестирование блоков путем изоляции объектов.
- Упрощает рефакторинг и расширение кода.
Таким образом, реализация Закона Деметры в объектно-ориентированном дизайне способствует более чистому, более модульному коду. Он побуждает разработчиков тщательно продумывать взаимодействия и зависимости объектов, что приводит к созданию более надежных программных систем.