Как устранить нарушения Закона Деметры?
Я знаю, что проиграю за полное design-patterns уничтожение, но должен сказать, что gang-of-four мне не нравится Закон Деметры. Конечно, такие coupling вещи, как
dictionary["somekey"].headers[1].references[2]
действительно уродливы, но pattern учтите следующее:
Kitchen.Ceiling.Colour
Ничего не language-independent имею против. Написание кучи law-of-demeter функций только для того, чтобы pattern удовлетворить Закон Деметры, вот language-independent так
Kitchen.GetCeilingColour()
для меня выглядит пустой gof тратой времени, а на самом gang-of-four деле это мой способ добиться pattern цели. Например, что, если language-independent требования изменятся и мне language-independent понадобится высота потолка? С coupling Законом Деметры мне придется language-agnostic написать другую функцию на design-patterns Кухне, чтобы я мог напрямую language-agnostic получить высоту потолка, и, в design-pattern конце концов, у меня будет design-patterns куча крошечных функций-получателей law-of-demeter повсюду, что я считаю довольно gang-of-four беспорядком.
РЕДАКТИРОВАТЬ: Позвольте мне pattern перефразировать свою точку gof зрения:
Неужели этот уровень patterns абстрагирования настолько gof важен, что я трачу время language-independent на написание 3-4-5 уровней language-independent геттеров / сеттеров? Действительно coupling ли это упрощает обслуживание? Конечный language-agnostic пользователь что-нибудь получает? Стоит gof ли мое время? Я так не думаю.
language-agnostic
design-patterns
coupling
law-of-demeter
Как устранить нарушения Закона Деметры?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.