Forcer l'implémentation d'une méthode.
Bonjour à tous,
Dans le cadre d'un projet de stage, je souhaite simplifier au maximum les opérations d'un développeur pour réaliser des opérations que je ne décrirai pas ici (je pense que celles-ci ne sont pas indispensables à connaître pour répondre à mon "problème"). Je vous explique la situation :
J'ai une classe abstraite A qui étend une classe B issue d'un framework que j'utilise, qui, dans les grosses lignes, ressemble à cela :
Code:
1 2 3 4 5 6
| public abstract class A extends B {
< des attributs ... >
public void process() { < fais quelque chose... > }
protected abstract void run();
} |
Et l'idée est d'uniquement développer une classe C, fille de A, implémentant la méthode run()
Code:
1 2 3 4 5
| public class C extends A {
< d'autres attributs, à la guise du codeur... >
@Override protected void run() { < fais quelque chose... > }
} |
Ce bout de code illustre mon besoin : minimiser l'effort d'un autre développeur et centraliser les calculs dans la classe mère. Bon, quoiqu'il en soit, il marche exactement comme je veux, mais est-ce la bonne façon de procéder ? Je veux dire, cette façon de faire est elle admise comme correcte (je le fais souvent quand je code en fait, que ce soit en Java ou C++ ou tout autre langage objet), ou alors vaut il mieux créer une interface avec une méthode run() et composer la classe A d'une implémentation de cette interface ? En gros, ma question s'oriente davantage sur une propreté de conception.
Si je n'ai pas été très clair dans la description de mon soucis, n'hésitez pas à me le dire.
Merci pour vos futurs réponses.