dummies
 

Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur ebooks mit Firmenlizenz anzeigen:

 

PHP objektorientiert - Konzepte, Techniken, Code

Peter Lavin

 

Verlag Carl Hanser Fachbuchverlag, 2006

ISBN 9783446410138 , 220 Seiten

Format PDF, OL

Kopierschutz Wasserzeichen

Geräte

29,90 EUR

Für Firmen: Nutzung über Internet und Intranet (ab 2 Exemplaren) freigegeben

Derzeit können über den Shop maximal 500 Exemplare bestellt werden. Benötigen Sie mehr Exemplare, nehmen Sie bitte Kontakt mit uns auf.


 

10 Verbesserungen durch Vererbung (S. 105-106)

Wer schon mal Monopoly gespielt hat weiß, dass sich seine die finanzielle Situation durch ein Erbe verbessern kann. In der objektorientierten Programmierung (OOP) bringt Vererbung ebenfalls Verbesserungen. In diesem Kapitel werden wir Vererbung benutzen, um die MySQL-Klasse aus Kapitel 9 zu verbessern, indem die Fehlerverarbeitung vereinfacht und das Verhalten der Klasse MySQLResultSet verbessert wird.

Fehler abzufangen ist keine Aufgaben, die Entwickler mit Freude erledigen. Es ist ermüdend und lenkt von der eigentlichen Aufgabe ab. Niemand ordnet das Schreiben von Fehlerbehandlungscode an, es ist ein notwendiges Übel. Aber nicht nur das, Fehlerbehandlungsroutinen sind häßlich. Es überlädt schönen Code und verdeckt öfters was ursprünglich gut lesbar war. Weiterhin ist es keine gute Idee, Fehlerbhandlungscode in einem frühen Stadium der Entwicklung zu schreiben, denn Sie möchten in dieser Phase die Fehler sehen. Aus diesen Gründen wird die Fehlerbehandlung oft bis in die letzten Phasen der Entwicklung weggelassen und, wenn alles fertig ist, wird es mehr oder weniger wie ein nachträglicher Einfall angeheftet.

Eine der großen Vorteile der OOP ist die Fähigkeit, Ausnahmen abzufangen anstatt Fehler zu unterdrücken. Durch das Abfangen von Ausnahmen wird die Aufgabe der Fehlerbehandlung zentralisiert. Das führt zu aufgeräumtem Code und vereinfacht den Übergang vom Entwicklungs- zum Produktionscode und verhindert die Notwendigkeit die Fehlerbehandlung später anzubauen. Diese Verbesserung in der Fehlerbehandlung wurde möglich durch eine eingebaute Klasse – Exception. In diesem Kapitel werden wir diese Klasse als Basisklasse für den Aufbau eigener Ausnahmenbehandlungsklassen verwenden.

Die zweiter Verbesserung die wir durchführen betrifft Veränderungen in einer selbst definierten Klasse, MySQLResultSet. Wie Sie in einem früheren Kapitel gesehen haben, haben Ergebnislisten und Arrays einiges gemeinsam – Sie müssen sie oft mit einer foreach- Schleife durchlaufen. Es ist ausgesprochen einfach mittels foreach durch ein Array zu laufen. Dies Einfachheit ist der Grund für die Modifikation im Verhalten, die wir für MySQLResultSet im Kopf haben. In diesem Fall ist es eine eher eingebautes Schnittstelle als eine Klasse die die Fähigkeiten zu MySQLResultSet hinzufügt.

10.1 Die PHP Standard Bibliothek

Die geplanten Verbesserungen der MySQL-Klassen greifen auf die PHP Standard Bibliothek (Standard PHP Library, SPL) zurück. Dies ist eine Sammlung von Klassen und Schnittstellen deren Zweck es ist, häufig auftretende Programmierprobleme zu lösen. Die SPL, sie ist neu in PHP 5, ist ungefähr mit der Standard Template Library in C++ vergleichbar, oder auch zu den vielen in Java eingebauten Klassen. Während Java aber tausende derartige Klassen kennt, ist der Umfang bei PHP sehr moderat.

Wir werden die Klasse Exception als Basis für MySQLException verwenden und die Schnittstelle Iterator der SPL um MySQLResultSet so zu verändern, dass sie mit foreach- Schleifen benutzt werden kann. Neben den Klassen die zur SPL gehören gibt es über Einhundert eingebaute Klassen in PHP 5. Wir werden uns diese in den Kapiteln 12, 14, 15 und 16 ansehen.

10.2 Eine Klasse durch Vererbung erweitern

Eine der großen Vorteile der OOP ist es, dass Sie nicht immer bei Null beginnen müssen. Vorhandene Klassen können in der Lage sein, die Aufgabe zu erledigen. Wenn eine vorhandene Klasse genau das tut, was erforderlich ist, können Sie sie nehmen „wie sie ist". Wenn Sie ungefähr das tut was Sie benötigen, aber nicht ganz genau so, können Sie sie verändern. Dieser Vorgang der Veränderung wird Vererbung genannt. Vererbung ist eines der wichtigsten Eigenschaften objektorientierter (OO) Sprachen. Es erlaubt es uns, neuen Klassen auf der Basis bestehender zu erzeugen, das vorhandene Verhalten zu auszunutzen und nach Bedarf anzupassen.

Der Ausdruck „Vererbung" ist passend weil Datenmitglieder und Methoden der Originalklasse Teil der neuen Klasse werden. Es ist jedoch wie mit der genetischen Vererbung – die Kinder sind den Eltern ähnlich in mancher Hinsicht, in anderer jedoch anders. Weil eine Kindklasse von einer Elternklasse abgeleitet wird, wird es auch als abgeleitete Klasse bezeichnet und die Elternklasse wird auch Basisklasse genannt. Elternklassen werden manchmal auch Hauptklassen (Superclasses) und abgeleitete Klassen als Unterklassen (Subclasses) bezeichnet.