Nel mio lavoro, nel nostro progetto principale, abbiamo una classe di Validazione che si è evoluta con gli anni. Ee ha un vecchio progetto con una classe User che usa una vecchia versione della classe Valdiation.
E dobbiamo aggiornare alcune funzionalità che richiedono nuovi metodi di convalida. Tutti questi metodi sono implementati nella nostra ultima classe di convalida.
Ma la nuova classe di convalida non è retrocompatibile, quindi non possiamo semplicemente mettere quella nuova al suo posto.
Ho pensato che una buona soluzione sarebbe quella di aggiornare tutto il codice che fa riferimento alla classe di convalida o renderlo compatibile all'indietro ma, ovviamente, entrambi richiederebbero molto tempo.
Infine, è stato deciso che l'aggiunta dell'ultima versione e la relativa chiamata Validation2 funzioni correttamente, alcuni metodi utilizzano Valdiation e altri Validation2. Penso che in seguito porteranno molti problemi, perché non sai quando usarne uno o l'altro dato che i nomi smettono di essere significativi.
Quale potrebbe essere l'opzione migliore per affrontarlo?
Inoltre, la classe Validation è stata l'esempio migliore, ma abbiamo lo stesso problema con molte classi più grandi e più complicate e ora abbiamo un sacco di classi "duplicate". La lingua è PHP, ma potrebbe succedere anche in altre lingue.