Hello,
Je suis en train de reprendre l'architecture d'un application Web basée sur des portlets.
Le developpement initial a été fait au fil de l'eau sans se poser trop de questions. Il n'y a pas de séparation des couches, bcp de code dupliqué,etc...
Je tente de faire du ménage et surtout de batir quelque chose de plus cohérent.
Après avoir fait pas mal de chose, j'en suis en train d'introduire une couche service entre la controler et le model.
J'ai identifié des traitements similaires entre les diverses portlets.
J'ai factorisé ces methodes dans une classe que j'ai appelé GenericRDVService, afin que la couche service de chaque portlet puisse en hériter.
J'ai fait la même chose avec la couche modele (AbstractRDVDatabase) Chaque portlet possede une classe DataBaseAccess heritant de la AbstractRDVDatabase.
Mon problème est que dans ma service générique j'ai besoin d'accéder au modele via ma classe AbstractRDVDatabase. le soucis est que cette classe est abstraite et je ne peux pas l'instancier Donc j'ai créé une interface LocalRDVDatabase ainsi que la classe d'implémentation LocalRDVDatabaseImpl (déclaré final, pour que celle ci ne soit pas visible de l'extérieur du package.
L'interface est la pour restreindre les méthodes disponible dans la classe genericRDVService.
J'ai fait un diagramme UML représentant les relations décritent ci dessus.elle est en piece jointe au post
Qu'en pensez vous?
Je reste à votre disposition pour explication complémentaire...
Merci d'avance pour votre aide!
UPDATE : J'ai rajouté une schéma UML avec les packages d'appartenance des classes
Partager