La funzionalità principale del nostro sistema è incapsulata in un servizio, chiamiamola X.
Ci sono richieste che arrivano al servizio X-Manager che gestiscono tutte le convalide e i problemi di sicurezza e attiva le funzionalità di X dopo che tutto è passato.
Ora vogliamo estendere la funzionalità di X con un nuovo modulo, chiamiamolo Y, ma senza modificare troppo il codice di X, preferibilmente senza cambiarlo affatto.
Inoltre, Y potrebbe essere in grado di lavorare autonomamente un giorno (e non solo di estendere X)
L'idea principale ora nel team è di rendere X-Manager chiamare Y con X invece di chiamare X, in modo che Y faccia la sua cosa e poi Y chiamerà la funzionalità di X invece di X-Manager.
Non so perché, ma questo mi fa schifo, spero di essere riuscito a spiegarlo bene ...
C'è un modo migliore per farlo?