Kapitel 13 Objekterstellung
Die Idee hinter OOP in ActionScript
Die Idee hinter der Objektorientierung ist recht einfach erklärt. Die Programmierung gestaltet sich weniger wie das Schreiben eines Kochrezeptes, sondern vielmehr wie das Erschaffen einer kleinen Welt mit eigenständigen Objekten.
03_Objektorientierung\Objekterstellung
Viele Programmierer verwenden in Flash bereits die Objektorientierung, ohne es überhaupt zu bemerken. Dabei bietet OOP richtig eingesetzt eine ganze Reihe an Vorteilen.
13.1 Artenvielfalt
Steigende Komplexität, schlechte Planung, mangelnde Spezifikation, unzureichende Projekteinschätzung, ungenügende Kalkulation, missverstandene Aufgabenstellung und daraus resultierende Terminüberschreitung, Sprengung des Budgets, Nichterfüllung der Anforderungen und schlechte Performance bis hin zur Unbrauchbarkeit der Software - nur einige leider immer wieder auftretende Schwierigkeiten bei der Erstellung von Programmen, die in den Siebzigerjahren den Begriff Softwarekrise geprägt haben. Um diese Krise in den Griff zu bekommen, sind große Anstrengungen unternommen und zahlreiche Lösungsansätze entwickelt worden, von denen die objektorientierte Programmierung (OOP) die populärste ist (in der Praxis löst diese aber leider auch nicht alle Probleme).
13.1.1 Programmiermodelle
Der abstrakteste Weg der Programmierung ist die Maschinensprache. Am Anfang der Computer-Geschichte mussten die Programmierer die Programme in einem binären Code aus Nullen und Einsen zusammensetzen. Dies erfordert ein starkes Abstraktionsvermögen, da sich die einzelnen Befehle nur schwer merken und die Programme nur schwer lesen lassen.
Symbolische Sprachen sind einfacher in der Anwendung. Bei diesen Sprachen gibt es Mnemoniken anstelle des binären Codes. Die Klasse der symbolischen Sprachen wird in niedrige und höhere Programmiersprachen unterteilt. Bei den niedrigen Programmiersprachen wie Assembler steht anstelle jedes binären Codes für einen einzelnen Befehl der Maschinensprache ein Mnemonik. Dies gestaltet die Programmierung einfacher, da sich die einzelnen Befehle leichter merken und lesen lassen. Es ist aber immer noch ein hohes Maß an Abstraktionsvermögen notwendig, da sich diese Art der Softwareentwicklung sehr stark an der Maschine und nicht an der eigentlichen Aufgabe orientiert.
Hier klicken, um das Bild zu Vergrößern
Abbildung 13.1
Verschiedene Generationen der Programmiersprachen!
Mnemonik
Ein Mnemonik beschreibt ein leicht zu merkendes Symbol, das als Gedächtnisstütze für einen abstrakteren und somit schwieriger zu merkenden Begriff steht.
Erst die höheren Programmiersprachen orientieren sich an den Anforderungen des Entwicklers und nicht an den Vorgaben durch die Maschine. Der Entwickler konzentriert sich in erster Linie auf die Lösung der gestellten Aufgabe und beschäftigt sich weniger mit den Eigenheiten der Maschine und deren elektronischen Komponenten. So sind die höheren Sprachen deutlich einfacher zu erlernen und zu beherrschen als niedrige Sprachen wie die Maschinensprache oder Assembler. Es ist ein geringeres Abstraktionsvermögen seitens des Entwicklers notwendig, da sich diese Art der Softwareentwicklung stärker an der Lösung der eigentlichen Aufgabe als an der Maschine orientiert.
Modelle für höhere Programmiersprachen
Es gibt vier verschiedene Modelle für höhere Programmiersprachen, die sich je nach Aufgabe unterschiedlich gut für die Programmierung eignen.
Jedes dieser Paradigmen ist auf eine Kategorie an Problemen spezialisiert. Das gebräuchlichste Modell ist jedoch die imperative Programmierung, bei der die meisten Zeilen in Befehlsform angegeben werden.
Generationen
Die unterschiedlichen Modelle der Programmierung werden häufig in Generationen unterteilt:
|
1. Generation: Maschinensprache |
|
2. Generation: Assembler (maschinenorientiert) |
|
3. Generation: Höhere Programmiersprachen (maschinenunabhängig) |
|
Generationenlücke |
|
4. und 5. Generation: z.B. Objektorientierung oder Sprachen für künstliche Intelligenz |
Bemerkenswert ist die Generationenlücke. Diese steht für die Krise in der Softwareindustrie in den Siebzigerjahren, die zu der Entwicklung von leistungsfähigen Programmiermodellen wie der Objektorientierung geführt hat. Die Objektorientierung bietet als Pluspunkt eine aus der realen Welt bekannte Metapher: die Objekte! Diese Metapher ermöglicht es, Programme einfacher in modulare und gekapselte Einheiten zu unterteilen, die sich durch Wiederverwendbarkeit auszeichnen. Auf diese Art und Weise versuchen Programmierer die Probleme der Softwarekrise in den Griff zu bekommen.
ActionScipt basiert wie zahlreiche andere Sprachen, darunter z.B. JavaScript, Java und C++, auf dem objektorientierten Modell. Die höheren Programmiersprachen eines Modells ähneln sich dabei in der Regel sehr, so dass es Programmierern mit Kenntnissen in einer anderen objektorientierten Sprache meist leicht fällt, ActionScript zu erlernen. Sprachen unterschiedlicher Modelle hingegen verhalten sich oft auch sehr unterschiedlich. Dennoch sind alle Programmiersprachen prinzipiell gleich mächtig, da der Computer letztendlich jede Anweisung eines Programms in eine für den Computer verständliche binäre Maschinensprache übersetzt, also wieder in Nullen und Einsen. Dies passiert glücklicherweise automatisch und weitestgehend ohne Zutun des Programmierers. Dabei kann eine einzige Anweisung in einer höheren Programmiersprache allerdings für Tausende von Befehlen in Maschinensprache stehen.
|