Как устранить нарушения Закона Деметры?

Я знаю, что проиграю за полное 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

2022-10-30T14:15:30+00:00
Вопросы с похожей тематикой, как у вопроса:

Как устранить нарушения Закона Деметры?