Objektorientierung will Gegenstände der realen Welt möglichst direkt in der Informationstechnologie abbilden.
Gegenstände werden dabei durch abstrakte Klassen beschrieben, die Daten-Einheiten und Bearbeitungslogik an einander binden. Eine Klasse exportiert über Schnittstellen sogenannte Methoden, welche unabhängig von innerer Datenstruktur und Implementation der Logik von aussen angewendet werden können. Konkrete Gegenstände werden als Objekte einer bestimmten Klasse instantiiert.
Das Baumuster wird nützlich durch objektorientierte Programmier-Sprachen, objektorientierte oder objektrelationale Datenbanken und geeignete Entwicklungs-Werkzeuge. Die Grundelemente objektorientierter Programmiersprachen sind:
Spezialisierte Kind-Klassen erben Eigenschaften und Fähigkeiten von Eltern-Klassen. Sie können Eigenschaften und Fähigkeiten modifizieren und addieren.
Das unterstützt die Wieder- / Weiter-Verwendung von Code.
Daten und Logik von Klassen sind an einander gebunden. Von aussen sichtbar sind nur die Bearbeitungs-Methoden. So können sie intern verändert werden, ohne dass auch die sie verwendende Logik angepasst werden müsste.
Dies reduziert die Komplexität von Anwendungen.
Eltern-Klassen können generelle Schnittstellen für Methoden (etwa das Anzeigen eines Grafik-Objektes) exportieren, welche erst durch spezialisierte Kind-Klassen spezifisch (etwa für einen Kreis, ein Quadrat) implementiert werden.
Dies erhöht die Flexibilität von Anwendungen.