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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
public abstract class A extends B {

< des attributs ... >
public void process() {
< fais quelque chose... >
run();
}
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.