Закон Деметры (действительно должно быть предложение Деметры) говорит, что вы не должны «добираться» до объекта, чтобы добраться до своих дочерних объектов. Если вы, как клиент, должны выполнить какую-то нетривиальную операцию, большую часть времени, когда модель домена, с которой вы работаете, должна поддерживать эту операцию.Закон Деметры против REST
REST в принципе является немой иерархией объектов. Это похоже на файловую систему ресурсов/объектов, где каждый объект может иметь дочерние объекты. Вы почти всегда достигаете REST. Вы можете произвольно создавать смешанные составные типы объектов, используя методы REST, и пока поставщик и клиент соглашаются на операции более высокого уровня, вы можете избежать сквозного доступа.
Итак, как вы балансируете REST и Demeter? Мне кажется, что они не конфликтуют, потому что REST - это все о сверхсовременной связи с тем, что провайдер не имеет смысла пытаться предвидеть все потребности клиентов, тогда как Demeter предполагает, что логика может мигрировать к ее самый естественный место через рефакторинг.
Однако вы можете утверждать, что REST - это всего лишь промежуточный зазор, пока вы не поймете своих клиентов лучше. Является ли REST просто взломом? Неужели Demeter нереалистичен в любом сценарии сервера/клиента?
Это сравнение яблок и апельсинов. REST - это создание масштабируемых распределенных систем с использованием единого интерфейса. Закон Деметры заключается в уменьшении связи между частями системы. –
Вы думаете о ситуации, когда клиент создает URL-адрес для дочернего объекта вместо того, чтобы иметь дочерний URL-адрес? Полагаю, это было бы нарушением, но если URL-адрес является результатом родительской операции. –