Les données de Traction vs Push Approche de la programmation orientée objet

Quand je dessine, mon système à partir de zéro, j'ai souvent face à un dilemme si mon objet doit pousser de l'information dans une autre objets, OU si les objets doivent pull les données nécessaires à partir d'un autre objet.

Est-il quelque chose comme un standard dans la programmation orientée objet design, que je préférerais de données de traction par les objets, par rapport aux données de pousser dans les objets?

Peut quelqu'un d'expérimenté conseiller, si une approche est meilleure sur les autres à partir de à plus long terme point de vue, ou lors de la programmation orientée objet structure/cadre/diagramme devient de plus en plus complexe?

  • GoF modèles de conception sont constitués d'assez spécifique problème et la solution. Ce n'est pas génériquement raisonnable d'être moins précis alors GoF. Sans la première partie, toute question n'a guère de sens. Et votre formulation des questions n'est PAS liée à C++.
  • L'une des règles est de ne jamais copier ou de mettre en cache des données dans de multiples objets. Au lieu d'exposer des données comme getter (propriété) qui peut être consulté à l'aide de l'objet de référence. De cette façon, vous informent de l' (modèle Observateur) lorsque quelque chose change en passant de l'objet de référence ou une notification. Reste de l'accès devrait être à travers le getter de la propriété.
  • Sergienko: Salut, et merci pour votre commentaire. Vous êtes parfaitement correct, que ma question est liée à la programmation orientée objet en général. Je vais vérifier GoF des modèles de conception, de voir ce qui est là.
  • Si l'objet observé est complexe et l'observateur a besoin d'un indice, puis aller avec modèle push. Si l'objet observé est simple, un pull modèle fera l'affaire. E. g. Si l'objet observé est un employé avec 20 champs et observateur reçoit une notification de la part du sujet que l'employé de l'objet a changé, alors il fait sens pour objet observé à POUSSER les détails de la modification des champs dans une structure de données(e.g paires clé-valeur) à la place de l'observateur tirant ensemble de l'ensemble de données, puis faire des comparaisons stupides avec son état précédent pour savoir exactement ce que tous les champs modifiés. Choix doit être dicté par la situation.