16 Entities

WHAT’S IN THIS CHAPTER?

  • An introduction to the DDD concept of entities
  • Uncovering entities in a problem domain
  • Differentiating entities and value objects
  • Examples of entity implementation fundamentals
  • Suggestions to help produce behavior-rich domain models by creating expressive entities
  • Examples of optional design principles and patterns that can enhance the expressiveness and maintainability of entities

Wrox.com Code Downloads for This Chapter

The wrox.com code downloads for this chapter are found at www.wrox.com/go/domaindrivendesign on the Download Code tab. The code is in the Chapter 16 download and individually named according to the names throughout the chapter.

As you work with domain experts, they often refer to concepts that have an inherent identity in the problem domain. For instance, they may talk about a specific customer or a specific sporting event. These concepts are known as entities, and unlike value objects, it is usually not acceptable for two entities that have similar values to be considered equal.

Finding entities in your domain and modeling them explicitly is important for conceptual and technical reasons. If you understand that a concept is an entity, you can start to probe domain experts for related details, such as its life cycle. Technically, you also want to understand which concepts are entities because distinct trade-offs and considerations apply to their design and implementation, as you will see later in this chapter.

Understanding ...

Get Patterns, Principles, and Practices of Domain-Driven Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.