![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
azerty25
Bonjour
Le titre n'est peut être pas explicite je vais donc essayer de détailler.
Supposons une classe A, ayant des méthodes publiques, et des attributs privés (jusque là, on doit me suivre ^^)
Supposons que le cahier des charges stipule que des choses dites "A" ont les mêmes comportements (méthodes et leur implémentation donc), mais qu'il existe plusieurs sous catégories de A. Les seules différences entre ces sous catégories étant les valeurs possibles des attributs, et non pas l'implémentation des méthodes.
Par attributs, je peux sous entendre attributs liés aux sous catégories elles mêmes, et non pas aux instances.
Par exemple, tous les instances A1 ont un prix de 1000, toutes les A2 un prix de 300. Ces 2 instances font les mêmes choses de la même façon, sauf qu'elle ne coutent pas pareil.
Comment pensez vous que ça se modélise ?
J'étais parti sur un héritage mais je me suis vite aperçu que tout ce qui est constant et statique en Java ne peut être hérité. J'ai commencé à me demander si j'avais bien analysé. Et finalement, c'est vrai que c'est pas une spécialisation puisque les fonctionnalités sont identiques.
Pouvez vous confirmer mon raisonnement ?
En ce moment, je me dis qu'une factory doit créer les instances de A, avec les attributs qui vont bien en fonction de la catégorie.
Par exemple, une énumération (pouvant être A1, A2 ...) est passée à la factory, et en fonction de ça, elle instancie avec les valeurs des attributs dépendant de cette catégorie (si A1, alors new a.prix = 1000 ...). Et pour différencier les catégories des instances, faire un attribut sous catégorie dans A (défini par la factory), accessible depuis l'extérieur.
Qu'en pensez vous ?
Partager