Euh, bah oui, depuis le début j'ai besoin de SpecificClass, il me semble que c'était clair.
Quant aux raisons de mon besoin en SpecificClass, à la limite ça ne change rien au pb, mais les raisons sont simples :
- J'ai déjà écrit et utilisé BaseClass (pour info c'est une classe abstraite permettant de gérer facilement des threads, utile dans le cas de process ponctuels nécessitant de tourner en tâche de fond, ex.: l'état d'un service, le contenu d'un fichier, ...)
- J'ai déjà écrit et utilisé SpecificClass (classe dérivant de BaseClass et implémentant ses méthodes abstraites, qui est spécifiquement chargée de surveiller le contenu de fichiers textes ou binaires, de type log).
J'ai donc pleinement accès à ses classes, et peut y faire des modifications mineures.
Et si, la pertinence de BaseClass et SpecificClass est non-négociable, ajouter des interfaces, ou d'autres classes est en revanche largement envisageable si nécessaire.
Ma volonté étant d'écrire dès que je peux des composants ré-utilisables facilement (des problématiques telles que "ce processus tourne-t-il ?" ou "ce fichier a-t-il été modifié récemment ?" sont somme toute assez courantes), j'ai donc également la volonté de faire une doc valable (lorsque j'ai mis des composants en boîte, je les mets généralement en ligne, en partage avec qui-qui-n'en-veut).
Et il faut avouer qu'avoir la doc directement en info-bulle dans un IDE, c'est vraiment super super pratique.
Mon pb est donc dans le spécialisation de la doc de SpecificClass, c'est donc en fait un pb somme toute courant, dans le sens où j'ai besoin de spécialiser qqch.
En l'occurrence, au-delà de la spécialisation de l'implémentation (d'où ma nécessité de BaseClass ET de SpécificClass) pour laquelle je crée donc une classe spécialisée (SpecificClass) avec des ajouts de méthodes et des surcharges de méthodes par rapport à BaseClass, il y aussi des méthodes de BaseClass, dont je ne désire pas toucher l'implémentation, mais pour lesquelles j'aimerais changer la doc.
trevor a écrit :
Code :
- public class BaseClass
- {
- ...
- /// <summary>
- /// Documentation générique
- /// </summary>
- public void UneMethode()
- {
- ...
- }
- }
- public class SpecificClass : BaseClass
- {
- ...
- /// <summary>
- /// Documentation plus spécifique <-- la différence par rapport à la méthode originelle, c'est juste ça !!
- /// </summary>
- public new void UneMethode()
- {
- base.UneMethode(); // oui, c'est bien tout ce que fait cette surcharge !!
- }
- }
|
|
D'où le base.UneMethode() qui ne fait que récupérer la logique de la classe de base.
Evidemment le code ci-dessus n'est pas complet , j'avais essayé de cerner uniquement la problématique, mais j'ai visiblement fait "trop serré"
Par ailleurs, utiliser une interface à la place d'une classe spécialisée me parait à l'inverse de ce qui est attendu puisqu'on passe d'une spécialisation à une généralisation - au sens POO du terme - (après, il y a peut-être des spécificités liées aux interfaces sous .Net qui m'échappent et permettraient de faire ce que je veux).
Bon, peut-être juste pour me permettre d'avancer, est-ce que d'après toi, ceci:
Code :
- /// <summary>
- /// Documentation plus spécifique <-- la différence par rapport à la méthode originelle, c'est juste ça !!
- /// </summary>
- public new void UneMethode()
- {
- base.UneMethode(); // oui, c'est bien tout ce que fait cette surcharge !!
- }
- }
|
est POO-ment parlant une horreur absolue ?
Message édité par trevor le 02-02-2010 à 18:53:43
---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net