Sto eseguendo il refactoring di un sito Web legacy di PHP OOP.
Sono così tentato di iniziare a usare "final" sulle classi per " make it explicit that the class is currently not extended by anything
". Questo potrebbe farti risparmiare un sacco di tempo se vengo a una lezione e mi chiedo se posso rinominare / cancellare / modificare una protected
proprietà o un metodo. Se voglio davvero estendere una classe, posso semplicemente rimuovere la parola chiave finale per sbloccarla per l'estensione.
Vale a dire se vengo a una classe che non ha classi secondarie posso registrare quella conoscenza contrassegnando la classe come finale. La prossima volta che ci arrivo non dovrei cercare nuovamente la base di codice per vedere se ha figli. Risparmiando così tempo durante i refactoring.
Sembra una buona idea per risparmiare tempo ... ma ho letto spesso che le lezioni dovrebbero essere rese "definitive" solo in occasioni rare / speciali.
Forse rovina la creazione di oggetti Mock o ha altri effetti collaterali a cui non sto pensando.
Cosa mi sto perdendo?