Saya refactoring situs web warisan PHP OOP.
Saya sangat tergoda untuk mulai menggunakan 'final' di kelas untuk " make it explicit that the class is currently not extended by anything
". Ini mungkin menghemat banyak waktu jika saya datang ke kelas dan saya bertanya-tanya apakah saya dapat mengganti nama / menghapus / memodifikasi protected
properti atau metode. Jika saya benar - benar ingin memperluas kelas saya hanya dapat menghapus kata kunci terakhir untuk membukanya untuk diperpanjang.
Yaitu Jika saya datang ke kelas yang tidak memiliki kelas anak saya dapat mencatat pengetahuan itu dengan menandai kelas sebagai final. Lain kali saya datang ke sana saya tidak perlu mencari kembali basis kode untuk melihat apakah ada anak-anak. Sehingga menghemat waktu saat refactorings.
Itu semua sepertinya ide hemat waktu yang masuk akal .... tapi saya sering membaca bahwa kelas hanya boleh dibuat 'final' pada kesempatan langka / khusus.
Mungkin itu mengacaukan pembuatan objek Mock atau memiliki efek samping lain yang tidak saya pikirkan.
Apa yang saya lewatkan?