La Ley de Demeter (realmente debería ser una sugerencia de Demeter) dice que no debe "acercarse" a un objeto para alcanzar sus objetos secundarios. Si usted, como cliente, necesita realizar alguna operación no trivial, la mayoría de las veces el modelo de dominio con el que está trabajando debe soportar esa operación.Ley de Demeter vs. REST
REST es en principio una jerarquía tonta de objetos. Es como un sistema de archivos de recursos/objetos, donde cada objeto podría tener objetos secundarios. Casi siempre logras llegar con REST. Opcionalmente, puede crear tipos de objetos compuestos por convención usando técnicas REST, y siempre que el proveedor y el cliente acuerden operaciones de nivel superior, puede evitar el alcance.
Entonces, ¿cómo balanceas REST y Demeter? Me parece que no están en conflicto, porque REST se trata de un acoplamiento súper flexible hasta el punto en que no tiene sentido que el proveedor intente anticipar todas las necesidades de los clientes, mientras que Demeter supone que la lógica puede migrar a su lugar más natural a través de la refactorización.
Sin embargo, podría argumentar que REST es solo un intervalo hasta que comprenda mejor a sus clientes. ¿REST es solo un truco? ¿Es Demeter poco realista en cualquier escenario de servidor/cliente?
Esta es una comparación de manzanas y naranjas. REST consiste en crear sistemas distribuidos escalables utilizando una interfaz uniforme. La Ley de Demeter trata de reducir el acoplamiento entre las partes de un sistema. –
¿Estás pensando en una situación en la que el cliente construye una URL para un objeto secundario en lugar de tener la URL hija entregada a ella? Eso sería una violación, creo, pero no si la URL es el resultado de una operación principal. –