Prawo Demeter - obiekty danych

Staram się przestrzegać Prawa Demeter (patrzhttp://en.wikipedia.org/wiki/Law_of_Demeter , http://misko.hevery.com/code-reviewers-guide/flaw-digging-into-collaborators/ ) jak widzę korzyści, ale stałem się trochę utknięty, jeśli chodzi o obiekty domenowe.

Obiekty domen mają naturalnie łańcuch, a czasami konieczne jest wyświetlenie informacji o całym łańcuchu.

Na przykład koszyk na zakupy:

Każde zamówienie zawiera użytkownika, informacje o dostawie i listę przedmiotów Każdy przedmiot zamówienia zawiera produkt i ilość Każdy produkt ma nazwę i cenę. Każdy użytkownik zawiera nazwę i adres

Kod wyświetlający informacje o zamówieniu musi wykorzystywać wszystkie informacje o zamówieniu, użytkownikach i produktach.

Z pewnością lepiej i bardziej nadaje się do ponownego wykorzystania tej informacji przez obiekt zamówienia, np. „order.user.address.city” niż dla jakiegoś kodu wyższego do wykonywania zapytań dla wszystkich obiektów wymienionych powyżej, a następnie osobno przekazać je do kodu?

Wszelkie komentarze / sugestie / wskazówki są mile widziane!

questionAnswers(5)

yourAnswerToTheQuestion