Bonjour la liste,

j'ai rencontr� deux fois en peu de temps des contextes o� l'on aimerait avoir
des m�thodes ou des attributs statiques ET abstraits :


1er exemple :
On a une classe abtraite A et deux classes B et C qui h�ritent de A.
Un attribut (appelons-le "val") est commun � tous les B et � tous les C
(mais n'a pas la m�me valeur pour les B et pour les C).
D'un c�t�, on aimerait conna�tre val pour un A quelconque
(instanci� indiff�ramment en B ou C), mais d'autre part, on veut pouvoir
conna�tre cette valeur sans avoir d'instance de B ou de C (d'o� le static).

Comment faire ceci proprement ?

2�me exemple :
En gardant telles quelles les classes A, B et C, je me trouve dans un contexte
o�, selon les param�tres pass�s au constructeur de B, celui-ci aura :
- soit un comportement identique � C
- soit un comportement particulier � B.
Bien s�r, je peux faire h�riter B de C, mais il faudra que je teste dans toutes les m�thodes
de B le comportement � avoir pour, soit appeler la m�thode de C, soit calculer le r�sultat
dans B. Mais cette solution ne me satisfait pas, � cause de la lourdeur du code d'une part,
et � cause de la non-n�cessit� de me trimballer les volumineux attributs de C lorsque B
doit avoir un comportement particulier.


La solution qui me plairait serait d'ajouter une m�thode statique getInstance() qui renvoie un A.
Et comme j'aimerais g�n�raliser cette pratique � toutes mes classes, je voudrais
mettre cette m�thode en abstract dans A.


Bien s�r, je n'ai jamais besoin d'appeler A.getInstance() et je peux compter
sur la rigueur des d�veloppeurs pour impl�menter syst�matiquement cette m�thode
dans toutes les classes qui h�ritent de A.
Mais je suis moyennement satisfait de cette solution.


Quelqu'un conna�t-il un moyen de rendre obligatoire l'�criture de cette m�thode
statique dans toutes les classes qui impl�mentent A ?


Merci d'avance,
St�phan BERNARD



Répondre à