© saicle/Shutterstock.com
PHP Magazin
Kolumne: Quality Time

Von Weichen über Klassen

Die Buchstaben S und O der SOLID-Prinzipien [1] nach Robert C. Martin haben wir in unserer kleinen Serie in dieser Kolumne schon behandelt. Falls Sie die ersten beiden Teile der Serie zu diesen essenziellen Regeln der Objektorientierung verpasst haben, können Sie sie unter [2] und [3] nachlesen. Logischerweise folgt nun das L, das für das so genannte „Liskovsche Substitutionsprinzip“ steht.

Tobias Schlitt


Was seltsam klingt und einen sehr wissenschaftlich-mathematischen Hintergrund hat, erweist sich als eine der wichtigsten Regeln des objektorientierten Softwaredesigns. Sie besagt: Erwartet ein Stück Code ein Objekt einer bestimmten Klasse, so muss es auch mit beliebigen Instanzen von Ableitungen dieser Klasse umgehen können, ohne etwas davon zu wissen. Das klingt zunächst etwas abstrakt und lässt sich am besten an einem Beispiel erklären. Die folgende Klasse wird in einem Projekt zur Umrechnung von Entfernungsangaben verwendet:class DistanceConverter{ const FACTOR = 0.6214; public function milesToKilometers( $miles ) { return $miles / self::FACTOR; }}class FormattingDistanceConverter extends DistanceConverer{ public function milesToKilometers( $miles ) { if ( $miles

PHP Magazin
Kolumne: Quality Time

Von Weichen über Klassen

Die Buchstaben S und O der SOLID-Prinzipien [1] nach Robert C. Martin haben wir in unserer kleinen Serie in dieser Kolumne schon behandelt. Falls Sie die ersten beiden Teile der Serie zu diesen essenziellen Regeln der Objektorientierung verpasst haben, können Sie sie unter [2] und [3] nachlesen. Logischerweise folgt nun das L, das für das so genannte „Liskovsche Substitutionsprinzip“ steht.

Tobias Schlitt


Was seltsam klingt und einen sehr wissenschaftlich-mathematischen Hintergrund hat, erweist sich als eine der wichtigsten Regeln des objektorientierten Softwaredesigns. Sie besagt: Erwartet ein Stück Code ein Objekt einer bestimmten Klasse, so muss es auch mit beliebigen Instanzen von Ableitungen dieser Klasse umgehen können, ohne etwas davon zu wissen. Das klingt zunächst etwas abstrakt und lässt sich am besten an einem Beispiel erklären. Die folgende Klasse wird in einem Projekt zur Umrechnung von Entfernungsangaben verwendet:class DistanceConverter{ const FACTOR = 0.6214; public function milesToKilometers( $miles ) { return $miles / self::FACTOR; }}class FormattingDistanceConverter extends DistanceConverer{ public function milesToKilometers( $miles ) { if ( $miles

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang