1. Agrégats (Aggregates)
- Les Agrégats sont des groupes d’objets métier apparentés qui sont traités comme une unité atomique lors des opérations de persistance et de transaction. Un Agrégat est composé d’une Entité racine et d’autres objets associés, tels que des Entités enfants ou des Value Objects.
- L’Entité racine de l’Agrégat est responsable de maintenir la cohérence et la validité de l’Agrégat dans son ensemble. Toutes les modifications apportées à l’Agrégat doivent passer par l’Entité racine.
- Les Agrégats sont souvent utilisés pour garantir la cohérence des données et pour réduire la complexité lors des opérations de persistance et de transaction.
2. Repositories
- Les Repositories sont des composants responsables de la persistance et de la récupération des objets métier, tels que les Entités et les Agrégats. Un Repository agit comme une couche d’abstraction entre le code métier et le système de stockage sous-jacent, tel qu’une base de données.
- Les Repositories offrent une interface permettant d’effectuer des opérations de CRUD (Create, Read, Update, Delete) sur les objets métier, tout en masquant les détails de persistance spécifiques.
- Les Repositories sont souvent conçus pour travailler avec des Agrégats plutôt qu’avec des Entités individuelles, ce qui permet de garantir la cohérence des opérations de persistance au niveau de l’Agrégat.
- Les Agrégats regroupent des objets métier liés et fournissent une unité de transaction cohérente.
- Les Repositories offrent une abstraction pour la persistance et la récupération des objets métier, en masquant les détails de stockage sous-jacents.
- Les Repositories sont souvent conçus pour travailler avec des Agrégats plutôt qu’avec des objets individuels, ce qui facilite la gestion de la cohérence des données.
3. Invariants
- Les invariants sont des conditions ou des règles qui doivent toujours être vraies pour maintenir la cohérence des objets métier dans un état valide.
- Les invariants sont des garanties de la validité des données à un moment donné. Ils peuvent être des contraintes simples, telles que des valeurs minimales ou maximales pour les attributs, ou des conditions plus complexes impliquant plusieurs objets métier.
- Les invariants sont généralement vérifiés lors de la création ou de la modification d’objets métier, et les opérations qui violent les invariants sont souvent rejetées ou corrigées.
2. Règles métier
- Les règles métier décrivent les politiques, les exigences et les processus qui régissent le comportement et les interactions dans le domaine métier d’une application.
- Les règles métier peuvent être aussi simples que des validations de données ou des restrictions d’accès, ou aussi complexes que des workflows métier complets impliquant plusieurs objets et acteurs.
- Les règles métier sont souvent utilisées pour guider la logique métier dans l’application et pour garantir que les opérations effectuées respectent les exigences et les contraintes spécifiées par le domaine.
- Dans un système de gestion des stocks, un invariant pourrait être que la quantité en stock d’un produit ne peut jamais être négative.
- Dans un système de réservation d’hôtel, une règle métier pourrait être que les chambres ne peuvent être réservées que si elles sont disponibles pendant la période spécifiée.
- Dans un système de gestion des comptes bancaires, un invariant pourrait être que le solde d’un compte ne peut jamais être inférieur à zéro.