An entity is a mutable object, so entity properties should be public, but if you want to guarantee that your entity must always have assigned particular property, make them private and require to pass via the constructor. See example,
Well, I do see the logic here, but if your concern is to guarantee that properties are set, using assertions and validators is easier and safer.
Constructors are good for tiny entities, but if they have more than 10 properties, good luck with that !
An entity is a mutable object, so entity properties should be public, but if you want to guarantee that your entity must always have assigned particular property, make them private and require to pass via the constructor. See example,
Well, I do see the logic here, but if your concern is to guarantee that properties are set, using assertions and validators is easier and safer.
Constructors are good for tiny entities, but if they have more than 10 properties, good luck with that !
No problem, do you know about
value object
? You always wrap up and pass it.Please spend time on reading this book. After that, your doubts dissipate.