Bonjour,

Considérons :
  • IRenderers: interface générale pour les Renderers (comme RLine et RStep).
  • RLine (respectivement RStep): classe concrete Renderer de Line (Renderer de Step).
  • MyRenderer: une interface ( du design pattern factory) contenant la signature d'une seule fonction B();
  • MyRLine (respectivement MyRStep): ma classe héritant RLine (respectivement MyRLine), rediefinissant la méthode C(), et implementant B().


Remarque: ce qui est en rouge est propre à une bibliothèque et je ne suis pas en mesure de le modifier.

En modèle conceptuel des données, cela se traduit ainsi:

  • Le corps de la méthode C() appelé F, est le même dans MyRLine et MyRStep mais ils utilisent des fonctions de RLine et RStep.
  • La fonction C() permet de redéfinir une seule méthode de RLine ou RStep.
  • La portion de code F utilise des méthodes de RLine (respectivement RStep)
  • Le corps de la méthode B() appelé E, est le même dans MyRLine et MyRStep mais ils utilisent des fonctions de RLine et RStep.
  • La portion de code E retourne MyRLine (donc le this qui corresponds à RLine en redefinissant la méthode C())


Problème: J'ai besoin de factoriser le code vu que la fonction C() et B() sont les mêmes dans MyRLine et MyRStep, je souhaite l'optimiser et le réduire, mais je ne sais pas comment ??

toute remarque est la bienvenue