IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Introducció

Entities vs Value Objectes

La identitat d'un objecte valor és el seu valor i no pas ell mateix:

A value object's identity is its value

En canvi les entitats tenen identitat pròpia.

La interpretació de si un objecte és una entitat o un value object depèn del domini o de com s'utilitzi es vegi l'objecte. Un exemple és un bitllet. Des de la perspectiva més habitual el podríem considerar un value object per que el que identifica un bitllet és el seu valor (bitllet de 5€, 20€, etc.). En vanci vist des de una perspectiva gubernamental potser la identificació del bitllet podria ser el seu codi.

Més exemples:

Entitats:

  • Comment/Post en la lògica del "negoci" d'un blog/website
  • Person
  • User

Aquest tipus d'objectes tenen un identificador i pel fet de canviar valors de les seves propietats no perden la seva identitat (continuen sent els mateixos objectes modificats). Des de la perspectiva de base de dades sovint una entitat representa una taula i cada objecte del tipus de la classe/entitar té un identificador que pot ser l'id intern de la base de dades com un altre identificador. Les classe tipus entitat si tenen persistència per exemple en sistemes ORM com Eloquent acabaran sent un model Eloquent.

Value Objects:

  • Difficulty
  • EmailAddres

Els value object no tenen per què ser classes "estupides" ja que poden tenir igualment comportament/behaviour. Per exemple un email address per exemple pot tenir funcions o mètodes de validació, un constructor que comprovi que el format sigui correcte i sinó tiri un IllegalArgumentException.

Recursos:

Com utilitzar a les bases de dades i Eloquent

https://laracasts.com/lessons/enforcement-entities-and-eloquent

Value object example

https://laracasts.com/lessons/entities-versus-value-objects
https://laracasts.com/series/whip-monstrous-code-into-shape/episodes/6

Vegeu també

Enllaços externs