Organiza o sistema em torno das regras de negรณcio, mantendo detalhes externos isolados.
Uma estrutura tรญpica:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Frameworks / Infrastructure โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Interface Adapters โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ Use Cases โ โ โ
โ โ โ โโโโโโโโโโโโโโโโโโโ โ โ โ
โ โ โ โ Entities โ โ โ โ
โ โ โ โโโโโโโโโโโโโโโโโโโ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโA regra principal รฉ a Dependency Rule: dependรชncias apontam para dentro.
Por exemplo:
Controller
โ
Use Case
โ
Interface (Repository)
โ
Postgres RepositoryO caso de uso nรฃo precisa saber se os dados vรชm do PostgreSQL, MongoDB ou API externa.
Muito รบtil para:
- Sistemas grandes
- Projetos que precisam de testes
- Domรญnios complexos
- Sistemas que podem trocar infraestrutura