Il mio problema è abbastanza complesso da spiegare e il mio inglese non è eccellente, quindi spero che tu possa capire la mia domanda.
In un'architettura orientata ai servizi ci sono alcuni moduli che possiedono i dati utilizzati da tutte le altre applicazioni e questi moduli espongono i dati tramite Remote Method Invocation e Web Services.
Noi sviluppatori del modulo abbiamo visto che il codice che richiama questi moduli è ripetuto in tutti gli altri moduli, quindi abbiamo deciso di mettere in comune il codice e creato un nuovo modulo chiamato Delegati comuni . Le responsabilità di questo nuovo modulo sono:
- mantieni informazioni sul nome host, sulla porta e sui nomi JNDI e / o dei servizi web;
- istanziare e utilizzare il localizzatore di servizio;
- istanzia e chiama gli stub ai moduli remoti.
Ma i metodi esposti dai moduli Delegati comuni usano le stesse classi di richiesta e risposta che sono definite nei moduli chiamati. Ciò significa che questo modulo non agisce come un livello di disaccoppiamento.
In alcuni casi questo modulo ha creato problemi di dipendenze circolari durante le build di maven.
È una buona cosa dividere il modulo Delegati comuni in molti diversi artefatti Maven per evitare dipendenze circolari, una per il modulo chiamato? Per esempio se devo chiamare via RMI il modulo A, dovrò usare il modulo A delegato .
È una buona cosa rendere questo delegato anche un livello di disaccoppiamento, nel senso che esporrà i propri bean di richiesta e risposta e li trasformerà nei bean usati dai metodi chiamati?