Ich überarbeite eine PHP OOP-Legacy-Website.
Ich bin so versucht, 'final' für Klassen zu " make it explicit that the class is currently not extended by anything
" zu verwenden. Dies kann viel Zeit sparen, wenn ich zu einer Klasse komme und mich frage, ob ich eine protected
Eigenschaft oder Methode umbenennen, löschen oder ändern kann. Wenn ich eine Klasse wirklich erweitern möchte, kann ich einfach das letzte Schlüsselwort entfernen, um es für die Erweiterung freizuschalten .
Dh wenn ich zu einer Klasse komme, die keine Kinderklassen hat, kann ich dieses Wissen aufzeichnen, indem ich der Klasse ein Finale markiere. Wenn ich das nächste Mal darauf komme, muss ich die Codebasis nicht erneut durchsuchen, um festzustellen, ob sie Kinder hat. So sparen Sie Zeit bei Umbauten.
Es scheint alles eine sinnvolle zeitsparende Idee zu sein ... aber ich habe oft gelesen, dass der Unterricht nur zu seltenen / besonderen Anlässen "endgültig" sein sollte.
Vielleicht macht es die Erstellung von Mock-Objekten kaputt oder hat andere Nebenwirkungen, an die ich nicht denke.
Was vermisse ich?