Das Demeter-Gesetz (sollte eigentlich der Vorschlag von Demeter sein) besagt, dass man kein Objekt "durchgreifen" darf, um an seine Kindobjekte zu gelangen. Wenn Sie als Client eine nicht-triviale Operation ausführen müssen, sollte das Domänenmodell, mit dem Sie arbeiten, meistens diese Operation unterstützen.Demeter-Gesetz vs. REST
REST ist im Prinzip eine dumme Hierarchie von Objekten. Es ist wie ein Dateisystem von Ressourcen/Objekten, wobei jedes Objekt untergeordnete Objekte haben kann. Sie erreichen fast immer REST. Sie können optional zusammengesetzte Objekttypen mithilfe von REST-Techniken erstellen, und solange der Anbieter und der Client Vereinbarungen auf höherer Ebene treffen, können Sie die Reichweite vermeiden.
Also, wie balancierst du REST und Demeter? Es scheint mir, dass sie sich nicht in Konflikt befinden, denn REST dreht sich alles um super-lose Kopplung bis zu dem Punkt, wo es für den Provider sinnlos ist, alle Bedürfnisse der Kunden zu antizipieren, während Demeter davon ausgeht, dass die Logik zu ihr migrieren kann natürlichster Ort durch Refactoring.
Sie könnten jedoch argumentieren, dass REST nur eine Zwischenlösung ist, bis Sie Ihre Kunden besser verstehen. Ist REST nur ein Hack? Ist Demeter in jedem Server/Client-Szenario unrealistisch?
Dies ist ein Vergleich von Äpfeln und Orangen. Bei REST geht es darum, skalierbare verteilte Systeme mit einer einheitlichen Schnittstelle zu erstellen. Das Gesetz von Demeter geht es darum, die Kopplung zwischen Teilen eines Systems zu reduzieren. –
Denken Sie an eine Situation, in der der Client eine URL für ein untergeordnetes Objekt erstellt, anstatt die untergeordnete URL an ihn zu übergeben? Das wäre ein Verstoß, denke ich, aber nicht, wenn die URL das Ergebnis einer Elternoperation ist. –