Modelando o domínio

No coração de qualquer aplicação orientada ao domínio, está o modelo que representa o conhecimento central e as regras de negócio do sistema. Modelar bem o domínio significa traduzir conceitos do mundo real em estruturas de software expressivas, coesas e consistentes.

Entidades

Uma entidade é um objeto que é definido principalmente por sua identidade e não apenas por seus atributos. Mesmo que seus atributos mudem ao longo do tempo, a identidade da entidade permanece a mesma.

Características principais:

  • Possui uma identidade única (normalmente um Id).
  • O que importa é quem ela é, não apenas o que ela contém.
  • Pode mudar de estado ao longo do tempo (atributos são mutáveis).

Objetos de Valor

Um Objeto de Valor representa um conceito do domínio que é definido apenas pelos seus atributos — e não possui identidade própria. Dois objetos de valor são considerados iguais se seus valores forem iguais.

Características principais:

  • Imutáveis após a criação.
  • Sem identidade própria (Id).

Enumerações

Enumerações em DDD vão além dos enum tradicionais do C#. São objetos ricos que representam estados fixos, mas que podem ter comportamento adicional, validações e métodos auxiliares.

Motivação:

  • Enums do C# são limitados (só armazenam o valor inteiro ou string).
  • Modelar uma Enumeration como classe permite maior flexibilidade e expressividade no domínio.

Características principais:

  • São classes que herdam de uma base e encapsulam um Id e um Nome.
  • Permitem adicionar regras de validação, métodos auxiliares e até comportamento.
처리되지 않은 오류가 발생했습니다. 새로 고침 🗙