Prawo Demeter (naprawdę powinno być sugestią Demeter) mówi, że nie powinieneś "docierać" do obiektu, aby dostać się do swoich obiektów podrzędnych. Jeśli ty, jako klient, musisz wykonać pewną nie banalną operację, w większości przypadków model domeny, z którym współpracujesz, powinien obsługiwać tę operację.Prawo Demeter vs. REST
REST to w zasadzie głupia hierarchia obiektów. Jest jak system plików zasobów/obiektów, gdzie każdy obiekt może mieć obiekty podrzędne. Prawie zawsze uzyskujesz dostęp poprzez REST. Opcjonalnie można tworzyć typy obiektów złożonych według konwencji przy użyciu technik REST i dopóki dostawca i klient zgadzają się na operacje na wyższym poziomie, można uniknąć zasięgu.
Jak więc wyrównać REST i Demeter? Wydaje mi się, że nie są w konflikcie, ponieważ REST polega na super luźnym sprzężeniu do punktu, w którym usługodawca nie ma sensu przewidywać wszystkich potrzeb klientów, podczas gdy Demeter zakłada, że logika może migrować do swoich klientów. najbardziej naturalne miejsce poprzez refaktoryzację.
Można jednak twierdzić, że REST to tylko przerwa, dopóki lepiej nie zrozumiesz swoich klientów. Czy REST to tylko hack? Czy Demeter jest nierealistyczny w jakimkolwiek scenariuszu serwer/klient?
To porównanie jabłek i pomarańczy. REST dotyczy budowania skalowalnych systemów rozproszonych za pomocą jednolitego interfejsu. Prawo Demeter polega na zmniejszeniu sprzężenia między częściami systemu. –
Czy myślisz o sytuacji, w której klient tworzy adres URL obiektu podrzędnego, zamiast przekazywać mu podrzędny adres URL? Myślę, że to byłoby naruszenie, ale nie, jeśli adres URL jest wynikiem operacji nadrzędnej. –