8
votes

Objets persistants et transitoires - confus sur la terminologie

Voici ma définition des deux termes, bien que je ne suis pas sûr si c'est une complète:

a objet persistant est une instance d'une classe dans le modèle de domaine Cela représente certaines informations extraites de la base de données. UNE objet transitoire est une instance d'une classe dans le modèle de domaine, créée en mémoire

a) Je suppose que les termes persistants et transitères sont utilisés uniquement pour les objets du modèle de domaine, mais pas aussi pour les objets de la couche d'entreprise qui vivent en dehors du modèle de domaine ?

b) utilisons-nous également les deux termes pour transfert de données-objets ?

c) Les deux termes sont également utilisés pour objets de valeur ?

merci


0 commentaires

3 Réponses :


19
votes

persistant signifie que l'objet a été enregistré dans la base de données alors que le transitoire signifie qu'il n'a pas encore été enregistré. Donc, par exemple, lorsque vous recevez une entité d'un référentiel, cette entité est persistante. Lorsque vous créez une nouvelle entité, elle est transitoire jusqu'à la persistance.

a) Ces termes sont plus affiliés à des ormes qu'avec DDD afin qu'ils s'appliquent à tout ce qui n'est pas DDD. Au sein du DDD persistant / transitoire s'appliquent aux entités et aux racines globales, car ce sont les objets qui sont persistés avec des référentiels.

b) Non, les DTO sont conçus pour transporter des données entre les limites de processus et ne pas avoir de cycle de vie que vous souhaitez persister dans une base de données.

c) non parce que les objets de valeur n'ont pas d'identité et ne peuvent être persistés que dans le cadre d'une entité ou d'une racine d'agrégation. Un objet de valeur n'est qu'une valeur, trier comme 1 est une valeur entière et il n'a pas de sens de parler de savoir s'il est persisté ou non.


2 commentaires

Vous avez répondu à ma question, donc je vais le marquer comme répondu dans une journée. Mais au cas où vous trouverez un peu de temps pour m'aider d'autres: «Non parce que les objets de valeur n'ont pas d'identité et ne peuvent être persistés que dans le cadre d'une entité ou d'une racine d'agrégation.» Nous n'utilisons pas les deux termes de l'objet de valeur Même s'il a sa propre table de base de données?


Un orj détermine l'état persistant / transitoire d'un objet basé sur la valeur de son identifiant (ou de la version). Étant donné que les objets de valeur ne disposent pas d'une ID, l'ORM ne fait pas cette détermination pour les objets de valeur - tous les objets de valeur sont persistés par une entité racine. Si vous persistez des objets de valeur directement, ils ne valent pas vraiment des objets de valeur.



0
votes

Transient signifie un objet non transformé ou l'objet instancié ou nouvellement créé. Une fois que l'objet soumettait pour toute autre opération que l'état de l'objet est connu, un persistant


0 commentaires

0
votes

Un objet comporte typiquement deux composants: état (valeur) et comportement (opérations) .Il peut avoir une structure de données complexe ainsi que des opérations spécifiques définies par le programmeur.9 Les objets d'une OOPL n'existent que lors de l'exécution du programme; Par conséquent, ils sont appelés objets transitoires. Une base de données OO peut étendre l'existence d'objets de manière à ce qu'elles soient stockées de manière permanente dans une base de données, et les objets deviennent donc des objets persistants qui existent au-delà de la résiliation du programme et peuvent être récupérés ultérieurement et partagés par d'autres programmes. En d'autres termes, des bases de données OO stockent des objets persistants en permanence dans le stockage secondaire et permettent le partage de ces objets parmi plusieurs programmes et applications.


0 commentaires