Objekt Orientiert Programmieren (OOP)

Zusammenfassung
OOP bietet ein Konzept für Programmieren. Verschiedene Programmiersprachen unterstützen diese Art zu Programmieren in unterschiedlicher Weise, mit unterschiedlichem Fokus. OOP Konzepte lassen sich in andere Domänen übertragen und (dort) weiterentwickeln.

Konzepte

Objekte
Einen wesentlichen Teil im OOP Konzept nehmen die Objekte ein. Diese Objekte sind "Black-Boxes", welche in der Lage sind, Nachrichten (message) zu versenden und zu empfangen. Objekte werden selbst wieder aus anderen Objekten zusammengesetzt. Diese Implementation bleibt anderen Objekten verborgen (data-capsule). Ein Objekt muss von einem anderen Objekt nur wissen auf welche Nachrichten es wie reagiert. Ein Protokoll spezifiziert dieses Wissen.

Beispiel: Ein Videorekorder ist eine Black-Box. Er versteht Nachrichten, welche von einem anderen Objekt, dem Benutzer, kommen. Die Implementierung ist seine Verdrahtung und Verkabelung im Innern. Ein Protokoll, Teil der Bedienungsanleitung, spezifiziert welche Nachrichten an den Videorekorder gesandt werden können (Fernbedienung,Bedienungselemente).

Redeweise: Ein Objekt implementiert ein Protokoll. Ein Objekt bekommt eine Nachricht geschickt. Ein Objekt kapselt seine Implementation.

Klassen
Objekte werden durch Klassen beschrieben. Eine Klasse beschreibt die Daten, die das Objekt speichert und manipuliert. Aber auch die Methoden (Programmstücke), die das Objekt braucht um sein Protokoll zu implementieren.
Ein Programmier programmiert eine Klasse (nicht ein Objekt). Diese Klasse erlaubt Objekte zu erzeugen; sie werden instantiieren.

Beispiel: Mein Computer ist ein Objekt, welches zur Klasse der Computer gehört.

Redeweise: Ein Objekt ist Instanz einer Klasse. Eine Klasse instantiiert ein Objekt.

Vererbung
Klassen sind hierachisch angeordnet(*1). Eine neue Klasse erweitert eine bestehende Klasse, indem sie sie benennt und die Unterschiede und Erweiterungen implementiert. Eine Unterklasse (subclass)  ist eine Erweiterung ihrer Oberklasse (superclass).

Beispiel: Ein Biber ist ein Säugetier ist ein Tier ist ein Lebewesen.

Redeweise: Eine Klasse erbt die Eigenschaften ihrer Superclass.

Konsequenz
Dieses Konzept erlaubt zwischen Top-Down und Buttom-Up Entwurf beliebig zu wechseln. Ein Objekt kann vollständig implementiert sein oder auch nur (erstmal) als grobe Beschreibung mit seinem Protokoll vorliegen.
Objekte können ihre Implementation ändern unabhängig von der Implementation anderer Objekte.
Objekte können einfach in anderen Programmen/Strukturen wiederverwendet werden (reuse).

Transfer
Diese Konzepte sind mittlerweile in andere Gebiete der Informatik übertragen worden (z.B. Datenbanken, Datenstrukturierung). Es stellt sich die Frage in wie weit sich diese Konzepte auch auf Gebiete der Architektur übertragen lassen. Es liegt auf der Hand das direkte Schnittstellen zwischen Architektur und Informatik geeignete Felder für diese Konzepte sind. So findet man heute schon in gängigen CAD Systemen diese Konzepte wieder. Aber auch ausserhalb dieser               Gebiete können objekt-orientierte Konzepte hilfreich sein, sie können den Architekturentwurf unterstützen und seine Ergebnisse (z.B. hinsichtlich Kosten) optimieren (Wiederverwendung, Vererbung).

(*1) Dies ist eine vereinfachte Darstellung. Es gibt noch andere Vererbungskonzepte.