Pour moi, c'est bien ce point résume bien ce que je n'apprécie pas dans le concept de super-objet. Plus que l'héritage public, sur lequel je ne vais pas revenir [1], ce qui me gêne c'est :
- L'aspect contaminant du super objet. Pourquoi fournir à un objet un mécanisme de signaux si cet objet n'a rien à faire des signaux ?
- Le rôle/responsabilité extrêmement flou (j'irais jusqu'à dire le côté fourre-tout) du super-objet.
Quitte à utiliser l'héritage public pour fournir des fonctionnalités "techniques" du type gestion de signaux, gestion des threads, comptage de référence, ou que sais-je encore, j'aurais plutôt tendance à définir n classes de base ayant chacune un rôle clairement définie et à ne faire hériter de ces classes que les objets qui ont réellement besoin de ces services.
[1] Pour résumer je suis plus ou moins d'accord sur le principe avec koala01 mais j'ai tendance à être plutôt souple (certains diront laxiste) quant au respect de ce principe.
Partager