Estou refatorando um site herdado do PHP OOP.
Estou tão tentado a começar a usar 'final' nas aulas para " make it explicit that the class is currently not extended by anything
". Isso pode economizar muito tempo se eu for para uma classe e me perguntar se posso renomear / excluir / modificar uma protected
propriedade ou método. Se eu realmente quero estender uma classe, basta remover a palavra-chave final para desbloqueá-la e estendê-la.
Ou seja, se eu for para uma turma que não tem turmas filhas, posso registrar esse conhecimento marcando a turma como final. Na próxima vez que eu chegar lá, não precisaria pesquisar novamente a base de código para ver se ela tem filhos. Economizando tempo durante refatorações.
Tudo parece uma idéia sensata para economizar tempo ... mas muitas vezes li que as aulas deveriam ser feitas apenas 'finais' em ocasiões raras / especiais.
Talvez estrague a criação do objeto Mock ou tenha outros efeitos colaterais nos quais não estou pensando.
o que estou perdendo?