Was ist Klassenhierarchie?

Eine Klassenhierarchie, auch Klassentaxonomie genannt, ist eine Gruppe verwandter Klassen, die durch Vererbung verbunden sind, um ähnliche Aufgaben auszuführen. Die Spitze der Hierarchie kann eine einzelne Basisklasse sein, von der alle anderen darunter liegenden Klassen abgeleitet sind, oder die Hierarchie kann mehrere Basisklassen enthalten, deren Funktionen später in einer oder mehreren abgeleiteten Klassen zusammengeführt werden. Die Beziehungen zwischen den Klassen können als Bäume dargestellt werden, und jeder kleinere Baum innerhalb der großen Taxonomie kann auch als Hierarchie betrachtet werden.

Nicht alle Klassenhierarchien können mehrere Wurzeln haben, und die Struktur einer Klassenhierarchie hängt weitgehend von der Sprache ab, in der sie geschrieben ist. C ++ ermöglicht mehrere Vererbungen, sodass komplexe Hierarchien mit mehreren Wurzeln und mehreren Bäumen erstellt werden können, die ineinander übergehen. Java® hingegen ist auf eine einzelne Vererbung beschränkt, sodass die Klassenbeziehungen in der Regel einfacher sind und als relativ eigenständige Bäume mit einer einzelnen Wurzel erstellt werden. Die Vererbung von Schnittstellen kann eine Klassenhierarchie in Java etwas komplexer machen, aber Schnittstellen werden in einem so komplexen Framework so gut wie nie aufgerufen, dass Bäume zusammengeführt werden.

Die Komponenten einer Klassenhierarchie können in Typ und Funktion variieren, solange die Regeln der Sprache in Bezug auf die Vererbung immer eingehalten werden. Klassen in einer Hierarchie können öffentlich, geschützt, abstrakt, konkret oder virtuell sein. Schnittstellen, globale Funktionen und Freunde können ebenfalls verwendet werden. Je nach Computersprache eignen sich einige dieser Typen möglicherweise besser für die Vererbung als andere. Im Allgemeinen sind Hierarchien sehr flexibel und können auf viele Arten für viele Zwecke verwendet werden.

Es gibt keine strengen Regeln dafür, wo bestimmte Arten von Klassen in einer Hierarchie angeordnet werden müssen. Es ist denkbar, dass jede Klasse eine der oben genannten Arten sein kann. Im Allgemeinen sollten die letzten Klassen in der Hierarchie, denen keine abgeleiteten Klassen untergeordnet sind, öffentlich und konkret sein. Da aber auch rein abstrakte Klassenhierarchien existieren können, ist dies nur eine Faustregel.

Obwohl eine Klassenhierarchie ein nützliches Werkzeug zum Organisieren von Code und zum Einkapseln von Funktionen sein kann, kann es manchmal vorkommen, dass der Code durch ein zu tiefes Eingreifen in eine Hierarchie verwirrt wird, anstatt ihn zu klären und einfacher zu warten. Der Aufbau einer soliden Beziehung zwischen vielen Klassen erfordert eine gewisse Voraussicht. Während es anfangs möglicherweise einfacher ist, Code in viele kleine Teile zu zerlegen, wird es später möglicherweise schwieriger, diese kleinen Teile zu handhaben. Bei ordnungsgemäßer Erstellung hilft eine Klassenhierarchie Entwicklern und Benutzern bei der Bestimmung der Funktionsweise von Klassen. Wenn es ohne Rücksicht auf Wartung und Klarheit erstellt wird, kann es verwirrend sein, auf die vielen Ebenen der Vererbung zurückzublicken und sie zu verstehen.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?