Desidero visualizzare il prodotto e la scheda prodotto contiene molte informazioni sul prodotto e sul proprietario. Come trattare con Law of Demeter in questo prodotto - relazione con il proprietario?
Nel controller attualmente ho:
Product product = productRepository.get(1);
E nel modello:
product.name
product.description
product.owner.name
product.owner.address
Ma le ultime due chiamate infrangono la legge di Demeter.
Quindi dovrei essere in classe getter di aggiunta del prodotto:
getOwnerName()
getOwnerAddress()
E nel modello:
product.name
product.description
product.ownerName
product.ownerAddress
Ma se ho, ad esempio, 10 informazioni sull'autore, devo fare fino a 10 gettoni aggiuntivi, che duplicano solo il codice.
Forse il modo migliore sarebbe nel controller:
Product product = productRepository.get(1);
Owner owner = ownerRepository.get(product.ownerId);
E nel modello:
product.name
product.description
owner.name
owner.address
Ma allora una tale struttura sarà coerente per un altro programmatore?
Come dovrebbe essere fatto nelle applicazioni professionali?