15 января 2012

Набираемся умных слов

И так читая книгу "Программист - прогматик" я наткнулся на упомянание закона Деметера и решил выяснить что это.


Закон деметера гласит:
Любой метод объекта должен обращаться только к методам, принадлежащим:
- тому же классу
- любым объектам, переданным в метод в качестве аргументов
- любым создаваемым им объектам
- любым непосредственно содержащимся объектам компонентов


Аналогия из жизни.
Если Вы хотите, чтобы собака побежала, глупо командовать ее ногами, лучше отдать команду собаке, а она уже разберется со своими ногами сама

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

Недостатки:
зачастую приходится писать множество методов-оберток, которые только лишь делегируют работу кому-то еще. Объекты становятся более громоздкими.


Другими словами, реализация данного закона в проекте позволит существенно сократить возможность возникновения ошибок  (ошибки в классах и их методах легко отследить и исправить, гораздо сложнее отследить ошибки на стыках классов или объектов).
Но это же в свою очередь приводит к увеличению кода проекта.
Если все это сложить то применение закона оставляет программиста в выигрыше, так как на отлов и исправление ошибок уходит больше времени чем на написание некоей небольшой оболочки для методов.


Комментариев нет:

Отправить комментарий

Поделиться своими мыслями...