J'ai des objets de deux types: TActionInfo et TActionStats. Le premier décrit les caractéristiques de l'action et le second peut «manger» le premier et maintenir certaines statistiques basées sur de nombreuses actions.Hériter de la classe C++ de protobuf
Il est très pratique d'utiliser un protobuf dans ma tâche, car ces objets sont fréquemment sérialisés et désérialisés.
Il semble être une bonne idée que TActionStats devrait avoir une méthode comme
bool AddAction(const TActionInfo& action);
Est-ce une bonne idée d'hériter d'une classe à partir de la classe de TActionStats google-de protobuf? C'est une bonne idée d'hériter de smth de protobuf en général?
Je préférerais avoir des variables de classe protobuf internes au lieu de les hériter. Dans (encore plus) général, à mon humble avis, c'est la meilleure idée d'éviter autant que possible l'héritage. C'est rare je peux répondre à la question _ "Est un?" _ Avec oui. –
Le design est * parfois * une question de goût. Quoi qu'il en soit, j'essaie d'éviter les noms de classes comme '... Info',' ... Stats', ou '... Data'. Quand je suis tenté de créer une telle classe, je me demande: Pourquoi la classe * real * (disons TAction') ne contient-elle pas ses infos et ses statistiques? Et si je veux juste une classe qui garde juste l'information sur une autre instance de classe, comment puis-je éviter de mélanger des couches d'abstraction? Regardez, vous avez une méthode 'AddAction' mais ce que vous ajoutez vraiment, c'est l'info de l'action. Couches mélangées. N'est-ce pas l'action que vous voulez ajouter ici? Considérez également [ceci] (http://en.wikipedia.org/wiki/Dependency_inversion_principle). – TobiMcNamobi