Komponenten und Objekte


Objektorientierung dient als Element der Kommunikation zwischen Mensch und Computer dazu, Software verständlich zu strukturieren. Dazu haben sich zwei Ansätze herausgeschält:

Innerhalb Java wird der Komponentengedanke durch Konzepte wie Interfaces, Beans, Packages, Javadoc realisiert. Mit diesen Mitteln kann man komplexe funktionierende Komponenten bereitstellen, die alle erforderliche Funktionalität beinhalten und kapseln. Zur Kapselung gehört, dass eine Komponente möglichst wenigen weitere Voraussetzungen zum Funktionieren erfordert. Von außen kann man an einer solchen Komponente Methoden aktivieren. Spezielle Methoden (Setter und Getter) dienen dabei zum Setzen und Abfragen von Attributwerten. Etwas vernachlässigt wird in der Regel die zentrale Eigenschaft, dass eine Komponente auch unerwartete Ereignisse (Events) aussenden kann. Dieser Aspekt wird in Java nur durch die Klassenbibliothek - also nicht durch die Sprache selbst - realisiert.

Wichtig ist, dass ein Objekt immer nur von zulässigen Zustanden zu zulässigen Zuständen gelangen kann und das in alle Zuständen alle Methoden natürlich funktionieren. So entworfene Komponenten bzw. Klassen zeigen bei ihrer Anwendung nur in geringem Maß unerwartetes Verhalten (Verhaltenskapselung). 

Bei der Modellierung von Komponenten hat sich das Ausgehen von Use Cases bewährt. Das heißt, man klärt als erstes, welcher Handlungsträger (Actor) welche Aktionen mit der Komponente ausführen muss. Als nächstes klärt man, welche Methoden dafür bereitgestellt werden müssen. Schließlich implementiert und testet man diese Methoden.