Devo aggiungere una nuova funzionalità in un progetto legacy del servizio web e sto pensando quale sia l'approccio migliore per una situazione concreta.
Il servizio web è semplice: riceve un file XML, elimina il tutto, genera oggetti di risposta, marshalling e infine invia la risposta come file XML. Per ogni file XML ricevuto, il servizio Web risponde sempre con la stessa struttura XML.
Quello che devo fare è generare un file XML diverso in base all'XML ricevuto. Quindi ho una classe controller che ha tutte le operazioni di marshalling / unmarshalling, ma questa classe controller deve essere un'istanza. A seconda dell'XML ricevuto, ho bisogno di alcuni metodi di marshalling o di altri.
Cercando di apportare poche modifiche alla fonte legacy, qual è l'approccio migliore? Il mio primo approccio è stato quello di fare un modello di metodo factory con la classe controller, ma questa classe deve essere un'istanza.
Voglio mantenere, per quanto possibile, questa struttura:
classController.doMarshalling();
Penso che questo sia un po 'puzzolente:
if(XMLReceived.isTypeOne())
classController.doMarshallingOne();
else if(XMLReceived.isTypeTwo())
classController.doMarshallingTwo();
else if(XMLReceived.isTypeThree())
classController.doMarshallingThree();
else if ...
Spero che la mia domanda sia ben compresa