7.5 Änderungen an Klassen und Methoden verhindern

Problem

Sie möchten verhindern, dass andere Entwickler bestimmte Methoden in einer Kindklasse neu definieren oder überhaupt Kindklassen von der Klasse ableiten.

Lösung

Markieren Sie die entsprechenden Methoden oder Klassen als final:

final public function connect($server, $username, $password) {
     // Methodendefinition
}

und:

final class MySQL {
     // Klassendefinition
}

Diskussion

Eigentlich ist die Vererbung eine gute Sache. Trotzdem kann es sinnvoll sein, sie einzuschränken.

Einer der besten Gründe dafür, eine Methode als final zu deklarieren, ist, dass tatsächlich eine Gefahr besteht, wenn jemand sie überschreibt – beispielsweise Datenkorruption, eine Race-Condition oder ein möglicher Absturz oder Aufhänger, ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.