NOTE: Désolé pour la longue question!
J'essaie de comprendre certains domaines clés, derrière l'orientation de l'objet et je n'arrivais pas à décider d'une manière ou d'une autre à propos de ma question.
Disons que j'ai un objet plein de jolies données. La classe de bob.
Bob myBob = new Bob("This string is data");
Disons que je veux sauvegarder le contenu de myBob à un fichier xml (bob.xml)
Dois-je avoir un objet loi sur bob pour écrire le contenu, ou devrais-je myBob faire cela?
Cas 1: Agir sur l'objet
Writer myWriter = new Writer(myBob, "C:\\bob.xml");
Cas 2: méthode Save
myBob.Save("C:\\bob.xml");
Certaines personnes sont parti avec la première option car cela signifie que si le code d'écriture de fichier est modifié, il n'a pas besoin de mise à jour dans chaque méthode d'enregistrement; la promotion de la réutilisation de code, je suppose. Mon problème, c'est l'obtention de toutes les données des objets qui peuvent avoir des données privées sans accesseur.
Le cas pour l'option deux est que la méthode n'agit que sur les données détenues par l'objet et c'est la façon dont il devrait être. Pas d'interférences avec d'autres objets.
Ou est la réponse à ma question un de ces cas "dépendant" des questions? Si oui, comment savez-vous quand une méthode est privilégiée plutôt que l'autre?