Dans une certaine mesure, il s'agit plus d'un exercice de réflexion que d'un réel problème, car je n'ai pas assez de classes CustomFS pour être particulièrement dérangé par l'utilisation de copier coller. Mais je me demande s'il y a un meilleur moyen."héritage" pour remplacer une fonction
Supposons que j'ai plusieurs classes CustomFS
, CustomFS2
, etc., tous héritant de FS
, FS2
, etc. FS/FS2/etc. tous héritent de FSG
, qui a une fonction GetStuff
. En supposant que je n'ai pas la possibilité de modifier FS et FSG comment puis-je remplacer une fonction particulière dans la plupart des FS/FS2 avec une seule classe CustomFS, et sans construire CustomFS avec FS et ajouter une fonction wrapper pour toutes les méthodes de FS à customFS.
stratégie actuelle: Copier/coller:
class CustomFS : FS
{
protected override int GetStuff(int x)
{
int retval = base.GetStuff(x);
return retval + 1;
}
}
class CustomFS2 : FS2
{
protected override int GetStuff(int x)
{
int retval = base.GetStuff(x);
return retval + 1;
}
}
Remarque: La fonction de remplacement n'est pas vraiment suffisamment complexe pour justifier l'ajout d'une couche d'indirection supplémentaire. – Brian