Il libro DDD di Eric Evan, Esempio di spedizione cargo, pag. 168:
Location
Two places with the same name are not the same. Latitude and longitude could provide a unique key, but probably not a very practical one, since those measurements are not of interest to most purposes of this system and they would be fairly complicated. More likely, the Location will be part of a geographical model of some kind that will relate places according to shipping lanes and other domain-specific concerns. So an arbitrary, internal, automatically generated identifier will suffice.
Motivo per cui l'autore ha creato Location
un'entità perché due luoghi diversi potrebbero avere lo stesso nome. Ma poiché sembra che Location
sia immutabile e quindi non cambierà nel tempo, non sarebbe meglio se fosse invece un Oggetto Valore? Così:
a) Perché non potremmo (invece dell'identificatore generato automaticamente) introdurre un attributo aggiuntivo che descriva un vero carattere descrittivo di una posizione, che aiuterebbe a distinguere tra i due luoghi con lo stesso nome? Quindi potremmo rendere Location
un VO.
b) Anche se non introduciamo un attributo aggiuntivo che descrive una caratteristica reale di un luogo, ma usiamo un identificatore generato automaticamente, non potremmo ancora considerare Location
come un VO, poiché il fatto rimane che è immutable e che l'applicazione funzionerebbe allo stesso modo anche se monitorasse diverse istanze che rappresentano lo stesso Location
?
c) Dalla citazione sembra che l'autore possa designare Location
come entità anche se al posto dell'identificatore generato automaticamente useremmo latitudine e longitudine per aiutare a distinguere tra luoghi diversi. Perché?
Grazie