Existe-t-il un terme standard pour une classe contenant uniquement des données, pas de logique?

StackOverflow https://stackoverflow.com/questions/1441569

  •  10-07-2019
  •  | 
  •  

Question

Je cherche un moyen standard de communiquer à un autre programmeur qu'une classe est essentiellement un conteneur de données.

Prenez cette simple classe User par exemple:

class User
{
    public string userName { get; set; }
    public string passPhrase { get; set; }
    public Role role { get; set; }
}

"Ce composant utilise la classe User, qui est simplement une classe (insérer ici)."

Je veux dire "modèle de données", mais je pense que c'est trop large. Les classes décrites en tant que modèles de données ont souvent une logique.

Était-ce utile?

La solution

Ils sont parfois appelés objets de transfert de données (DTO).

Autres conseils

POD - Données anciennes standard

Que diriez-vous de: struct ?

" Objet de valeur " est plus précis dans ce cas que "l'objet de transfert de données". Un objet valeur ne contient que des valeurs; un objet de transfert de données doit en outre mettre en œuvre une méthode de transfert de ces données vers ou depuis lui-même vers ou depuis une autre entité. "Bean" est également un terme accepté, en particulier dans les cercles Java.

POXO - Plain Old X Object, où X est la langue de votre choix. Votre cas ressemble à C #, donc c'est un objet POCO: Plain Old C #.

En Java, une classe contenant uniquement des propriétés et des getters / setters pour chaque propriété est appelée un bean ou POJO (Plain Old Java Object)

Objet de transfert de données, plus communément appelé DTO.

Ce n'est pas standard, mais j'attache souvent les informations "Info". suffixe à un nom de classe pour indiquer que la classe est uniquement destinée à stocker et à transférer des informations. Je changerais donc votre classe User en UserInfo .

UserData fonctionnerait également, de même qu'un message "n'ajoute aucune méthode à cette fichue chose". commentez en haut.

L'objet de transfert de données peut être correct, selon l'intention. C'est essentiellement un conteneur, mais "conteneur". est surchargé et fait généralement référence aux types de collection.

Les objets de valeur peuvent avoir un comportement, mais si vous avez deux objets de valeur créés indépendamment avec les mêmes valeurs de champ et qu'ils peuvent être traités comme équivalents (par exemple, l'identité de l'enregistrement n'a pas d'importance), vous pouvez dire que avoir est un objet de valeur. Mais généralement, les objets de valeur sont meilleurs lorsqu'ils sont immuables.

Lorsqu'il y a beaucoup d'objets de transfert de données dans une conception, celle-ci est parfois appelée de manière péjorative un modèle de domaine anémique.

De Une introduction en douceur à Haskell

"Un type comme celui-ci est souvent appelé un type de tuple, car il ne s'agit essentiellement que d'un produit cartésien d'autres types".

Objet de données, objet de transfert de données, DTO

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top