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