Value vs Entity objects (Domain Driven Design)

Reduced to the essential distinction, identity matters for entities, but does not matter for value objects. For example, someone’s Name is a value object. A Customer entity might be composed of a customer Name (value object), List<Order> OrderHistory (List of entities), and perhaps a default Address (typically a value object). The Customer Entity would have … Read more

Is it ok for entities to access repositories?

it’s not a horrible violation of DDD it’s a horrible violation of… well… it’s just plain horrible (i say this tongue in cheek) :). First off, your entity becomes dependent on having a repository… that’s not ideal. Ideally you’d want to have your repository create the Person and then assign it everything it needs to … Read more

What are the benefits of Persistence Ignorance?

Let me explain this with an example. Lets assume your are implementing an application using a classical SQL approach. You open recordsets, change data and commit it. Pseudo code: trx = connection.CreateTransaction(); query = connection.CreateQuery(“Select * from Employee where id = empid”); resultset = query.Run(); resultset.SetValue(“Address_Street”, “Bahnhofstrasse”); resultset.SetValue(“Address_City”, “Zürich”); trx.Commit(); With NHibernate it would look … Read more