33
1.7
Objektorientierte Programmierung
Drei Streichhölzer liegen zueinander parallel, berühren sich aber nicht.
Es gibt kein Streichholz, das nicht an jedem Ende wenigstens ein anderes Streichholz
berührt.
Imperatives Paradigma:
Legen Sie zwei Streichhölzer (A und B) in einer geraden Linie nebeneinander auf den
Tisch, so dass sie sich an einer Stelle berühren.
Legen Sie ein Streichholz C mit einem Ende an der Stelle an, wo sich A und B berühren.
Das Streichholz soll einen rechten Winkel zu A und B bilden.
Legen Sie an die äußeren Enden von A und B jeweils ein weiteres Streichholz mit einem
Ende an (D und E), so dass diese neuen Streichhölzer jeweils einen rechten Winkel zu
A und B bilden und in die gleiche Richtung gehen wie das mittlere Streichholz.
Verbinden Sie die noch freien Enden von C, D und E mit den verbleibenden zwei
Streichhölzern.
Eine Abbildung der korrekten Anordnung finden Sie am Ende des Kapitels. Vermutlich
haben Sie die zweite Aufgabe schneller lösen können. Tatsächlich benötigen auch in der
Computertechnik imperative Programme weniger Rechenzeit als deklarative.
Zum Schluss sei noch das Paradigma der funktionalen Programmierung erwähnt. Mit funk-
tionalen Programmiersprachen wie z.B. Haskell oder Scheme kann man ein Programm als
(mathematische) Funktion definieren. Einfache vorgegebene Funktionen werden zu einer
komplexen Funktion verknüpft, die das Gewünschte leistet. Mathematisch geschulten Men-
schen fällt diese Art der Programmentwicklung bei bestimmten Problemen leichter.
Man kann mit Fug und Recht sagen, dass unter diesen drei Paradigmen der imperative
Ansatz am verbreitetesten ist. Funktionale und deklarative Sprachen spielen heute in der
Praxis der Software-Entwicklung eher eine untergeordnete Rolle. Auch die objektorientierte
Programmierung (OOP) wird als eigenes Programmierparadigma beschrieben. Das hört sich
so an, als wäre die objektorientierte Programmierung etwas ganz anderes als das imperative
oder funktionale Paradigma. Aber ganz so ist es eigentlich nicht. Vielmehr betrifft das Para-
digma der Objektorientierung einen Aspekt der Programmentwicklung, den ich bisher
noch nicht erwähnt habe. Es geht um die Beherrschung von Komplexität.
1.7 Objektorientierte Programmierung
1.7.1 Strukturelle Zerlegung
Die ersten Computerprogramme waren einfach und dienten der Lösung eines relativ klei-
nen, gut umgrenzten Problems. Die Situation wird ganz anders, wenn man umfangreiche
Software erstellen möchte, etwa ein Textverarbeitungsprogramm oder ein Verwaltungspro-
gramm für eine Bibliothek. Solche großen Systeme lassen sich nur beherrschen, wenn man
sie zunächst in kleinere überschaubare Teile aufbricht. Abbildung 1.5 soll diesen Gedanken
veranschaulichen.

Get Python 3 - Lernen und professionell anwenden 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.