Sto rifattorizzando un sito web legacy OOP di PHP.
Sono così tentato di iniziare a utilizzare "final" sulle classi su " make it explicit that the class is currently not extended by anything
". Questo potrebbe risparmiare un sacco di tempo se vengo in una classe e mi chiedo se posso rinominare / eliminare / modificare una proprietà o un metodo protected
. Se io davvero voglio estendere una classe, posso semplicemente rimuovere la parola chiave finale per sbloccarla per estenderla.
I.e Se vengo in una classe che non ha classi di bambini, posso registrare quella conoscenza segnando una finale alla classe. La prossima volta che ci andrò non dovrò cercare di nuovo la base del codice per vedere se ha figli. Così risparmiando tempo durante i refactoring.
Sembra un'idea ragionevole per risparmiare tempo .... ma ho letto spesso che le lezioni dovrebbero essere fatte solo in occasioni rare / speciali.
Forse rovina la creazione di oggetti Mock o ha altri effetti collaterali a cui non sto pensando.
Cosa mi manca?