J'en appelle au élites :
Je développe ce qu'on appelle ici (et surement ailleurs) une infrastructure : une appli utilisée par d'autres appli.
cette infrastructure est mise à disposition sous forme de webservice.
On me demande de gérer la rétro-compatibilité en cas d'évolution du code.
Je vois arriver un problème si les signatures des méthodes exposées par le WS changent, ou si les objets manipulés par le WS change.
Donc, je pensais dissocier le coté client du coté serveur. Coté client, je ne manipule en fait qu'une Map<String, String>, qui fait correspondre les noms des attributs avec leur valeur, et des attachement SOAP pour les flux de données. Coté serveur, quand le message arrive, je traduis la Map en un (arbre d')objet concret que je manipule coté serveur comme je veux.
Si mes objets concrets évolue coté serveur, il me suffit en fait de gérer des valeurs initiales pour les nouveaux attributs, et de ne pas traiter ceux qui ont disparus.
Je fourni au client des méthodes pour passer des dates, des int, des float (...) et des méthodes directes (genre setApplicationCode(String code), setDateDemande(Date date)) pour lui cacher la Map<String, String>.
est-ce que ça semble un design potable, une belle usine à gaz, une simple idée à la con () ?
merci de vos avis.
---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris