SasumeLe 25/04/2010 à 00:44
C’est une bonne idée en générale de définir des interfaces minimalistes. Je dis interfaces au sens Java, ce qui correspond aux classes ne contenant que des méthodes virtuelles pures en C++. Elles définissent une sorte de contrat : tout objet qui implémente cette interface (qui hérite de cette classe abstraite, en C++) devra fournir les services correspondant aux opérations de l’interface.
Là, ton interface GraphicComponent pourrait très bien n’avoir qu’une opération : paint(Screen).
Et tous les objets qui sont capables de se dessiner hériteront de cette classe abstraite et implémenteront ses opérations.
De l’autre côté, quand tu dois afficher des objets, manipule les à travers l’interface GraphicComponent (GraphicComponent *plane = new Plane(); plane->paint(screen); ), ça permet de contraindre vraiment leur utilisation à ce qu’elle devrait être.
(je suis désolé il est tard pour moi et j’ai la flemme de mieux expliquer mais normalement ce que je viens de dire est assez important)