Adobe Air (wiwobooks.com Release)
Überblick behalten, wohin auch immer der Programmstrom verzweigen kann.
1.2.11 Objektorientierte Programmierung
Hier setzt die objektorientierte Programmierung (OOP) an. OOP geht davon aus, dass es keinen »allwissenden« Hauptprogrammstrom geben muss. Mehr noch: Dieser wird sogar bewusst vermieden.
Abstraktion
Ein wesentlicher Schritt ist dabei die Abstraktion. Sie und ich als denkende Menschen tun sich wesentlich leichter, in Bildern zu denken als in komplexen logischen Strukturen. Wenn Sie die Funktionsweise eines Computerprogramms erläutern wollen, werden Sie dies wahrscheinlich ganz instinktiv tun, indem Sie das Zusammenwirken der einzelnen Programmkomponenten abstrakt beschreiben und Details der Umsetzung wohl eher weglassen.
Man tut sich durch Abstraktion leichter, eine bestimmte Funktion an geeigneter Stelle unterzubringen, weil damit ein gewisses Verständnis übergeordneter Zusammenhänge verbunden ist. Sie müssen also nicht den genauen Ablauf des Programms im Kopf haben, um etwa eine Funktion für das Versenden von E-Mails dort zu suchen, wo sie sich vom übergeordneten Verständnis her befinden sollte: in einer entsprechenden Komponente. In OOP wird ein Programm daher in möglichst klar getrennte, logische Bestandteile aufgeteilt, wobei das trennende Kriterium das der isolierten Verantwortung für eine Aufgabe ist. Das kann beispielsweise das Drucken sein oder der Abruf von Informationen.
Verkapselung
Man spricht in der objektorientierten Programmierung von der Verkapselung der Informationen als wesentlichem Gestaltungsmerkmal: Außer der Komponente, die für den Druck verantwortlich ist, braucht kein anderer Programmteil etwas über die konkrete Druckfunktionalität zu wissen, sondern er muss lediglich die dafür verantwortliche Komponente verwenden und die Aufgaben zum Druck eines konkreten Dokuments an diese delegieren.
An dieser Stelle kommen die namengebenden Objekte ins Spiel: So, wie Sie in der Welt um sich herum die verschiedensten Objekte mit den unterschiedlichsten Eigenschaften sehen, können Sie die Funktionalität Ihres Programms in verschiedene Bestandteile unterteilen. Diese bilden in sich geschlossene, funktionelle Einheiten, die einen festgelegten Aufgabenbereich haben und die von anderen Programmteilen aufgerufen und somit vielfach verwendet werden können. Und das Beste daran ist: Wie dieser Programmteil seine Aufgabe erfüllt, ist vollkommen nebensächlich und interessiert die anderen Programmteile überhaupt nicht. So muss ein Teil eines Programms, das auf die Druckfunktionalität zugreifen will, nicht wissen, wie und auf welche Weise gedruckt wird, sondern übergibt auf die vereinbarte Weise den Druckauftrag an das dafür zuständige Objekt.
Genauso verfährt ein anderer Programmteil z. B. mit einer Mailing-Funktion, indem er das tatsächliche Versenden einer E-Mail dem dafür vorgesehenen Objekt überlässt und sich darauf beschränkt, dieser die dafür notwendigen Daten (Empfänger, Betreffzeile, Text etc.) mitzuteilen. Dabei verfügt dieses isolierte Objekt über gekapselte Eigenschaften und Funktionen (die in der objektorientierten Programmierung Methoden genannt werden und für eine Form von Tätigkeit des Objekts stehen), wie z. B. die Eigenschaft druckerName oder die Methode drucke() , die von außen erkennbar bzw. aufrufbar sind (dann bezeichnet man sie gerne als Schnittstelle) oder nur von einer bestimmten Stelle aus, z. B. innerhalb eines Komponentenpakets.
Sollte sich einmal die Art und Weise ändern müssen, wie ein Dokument gedruckt oder eine E-Mail geschickt wird, so muss demnach nur das »Innere« eines Objekts oder einer Komponente geändert werden. Alle anderen Programmteile, die dieses Objekt verwenden oder »ansteuern«, bekommen von dieser Änderung nicht notwendigerweise etwas mit, solange die Schnittstellen nach außen, also die Methoden, die als öffentlich zugänglich definiert wurden, intakt und konsistent bleiben. Das geänderte Objekt bleibt für die anderen eine Blackbox, eine Schachtel unbekannten Inhalts. Dieses Prinzip der Verkapselung von Informationen und die damit einhergehende Strukturierung des Quelltexts in klar abgegrenzte Zuständigkeiten einzelner Programmteile ist einer der wesentlichen Vorteile objektorientierter Programmierung.
Klassen
Bei den Objekten selbst schließt sich eine andere Fragestellung unmittelbar an: Wenn ich mehrere gleichartige Objekte habe, wie minimiere ich den Programmieraufwand, diese zu erstellen? Die
Weitere Kostenlose Bücher