Si je dis que j'ai un cadre d'entité hiérarchique, plutôt qu'un modèle de composant. Quelque chose comme: 
(Oui, c'est inventé)  
Weapon-> Gun-> AutomaticGun-> MP44 
Ou, plus d'un exemple classique: 
Entity-> MovableEntity-> Enemy-> WalkingEnemy  
Dans quelle mesure diviseriez-vous les fichiers source / en-tête pour la lisibilité et l'organisation? Est-il préférable d'aller quelque chose comme Entity.cpp, MovableEntity.cpp, Enemy.cpp, etc. ou une approche comme Entity.cpp [contenant Entity et MovableEntity] et Enemy.cpp [contenant Enemy et WalkingEnemy] serait-elle meilleure? (Ou d'une manière plus indépendante de la langue, un fichier ennemi et un fichier d'entité par rapport à un fichier pour chaque classe?) 
De plus, cela affecterait-il autre chose que la lisibilité et l'organisation?
language-agnosticsoit une balise appropriée car cela dépend beaucoup de la langue que vous utilisez quant aux effets secondaires.