Abbiamo una funzione attualmente implementata, chiamiamola implA.
ImplA funziona ma non può fare molte cose. Quindi abbiamo deciso di riscriverlo. Ma non possiamo semplicemente sostituirlo subito, quindi avremo bisogno di passare attraverso un'altra implementazione, implB, come soluzione temporanea per fare la transizione tra implA e implC.
Anche quando implC è disponibile, molte persone continueranno a utilizzare implA perché si affida all'hardware che deve essere aggiornato per utilizzare implC. Ad ogni modo, da lì, proveremo a usare implC in qualsiasi momento possibile, ma dobbiamo ancora supportare implA per qualche tempo.
Questa funzione è usata nel resto dell'applicazione, e mi chiedo quale sia la migliore linea di condotta da eseguire nel modo più indolore possibile nel codice. Quindi finiremo con implA, implB e implC.
Mi chiedo se esiste uno schema per questo, o solo una soluzione semplice a cui non penso.
Stavo pensando di avvolgerlo in una classe che poi chiamerebbe l'impl giusta. Ma il mio problema è che implC avrà molte più funzionalità e la logica è diversa rispetto a implA e implB. Quindi trovo difficile creare un'interfaccia comune per le 3 classi.
Quale sarebbe la soluzione migliore?