Software Architecture in Practice
7. Mental Model for Applications
Domain Driven Design
- Helps classify components into logical categories to orchestrate certain behaviors
- Works well with modeling business applications
Domain Driven Design Objects
- Entity - objects with distinct identities and has a lifecycle
- Value Objects - immutable objects that has value but has no unique identity
- Domain Event - a record of something that happened in the software, can be used to publish to components that are interested
- Aggregate - cluster of objects that can be related and treated as a single unit
- Service - business logic operations that are stateless
- Repositories - deals with the entities and value objects lifecycle
- Factories - encapsulates creation of complex entities, aggregates and value objects