What is Domain Driven Design and Development
DDD stands for Domain Driven Design. It is a software design pattern. DDD pattern helps us to make a design decision. It has Entity, Value Object, Aggregate, Service and Repository.
- Entity: It is an object which has identity and unique within the system like student and employee.
- Value Object: It is an object with no identity like windows in the rooms, sales, etc.
- Aggregate: A collection of objects that are bound together by a root entity, otherwise known as an aggregate root.
- Service: If Entities and Value Objects are the "things" in your domain, the services are a way of dealing with actions and activities.
- Repository: A repository is responsible to store and to retrieve your data. It is not a Data Access Layer but location for storage and the there can be any database like XML, Oracle or a textfile.