La migliore soluzione per passare dal codice nuovo a quello deprecato

1

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?

    
posta dyesdyes 28.05.2015 - 17:57
fonte

1 risposta

2

Con i dettagli forniti, trovo difficile giustificare la necessità di un'implementazione temporanea - ImplB. Ad ogni modo, sto parcheggiando qui.

Poiché tutti i 3 sono implementati per uno scopo specifico, sebbene possano esserci funzionalità aggiuntive per implC, credo che ci possa essere un certo tipo astratto per queste 3-interface o una classe astratta. Una volta installato, è possibile utilizzare il modello predefinito per fornire l'istanza corretta al chiamante in base a determinati parametri / gruppi di parametri.

Riferimento: Modello di fabbrica - link

    
risposta data 28.05.2015 - 19:23
fonte

Leggi altre domande sui tag