Java

Schichtenarchitektur I

Inhaltsübersicht

Du weißt nicht was es mit der sogenannten Schichtenarchitektur in der Informatik auf sich hat? Wir zeigen es dir in zwei Beiträgen!

Modell zur Entkopplung von Klassen

Die Schichtenarchitektur besteht im Groben aus drei Schichten, die je nach Genauigkeit noch weiter untergliedert werden können.

Uns reicht hier aber die Aufgliederung in drei Schichten. Diese sind die GUI-Schicht, die Fachkonzeptschicht und die Datenhaltungsschicht.

Die Schichtenarchitektur besteht grob gesagt aus drei Schichten

Die GUI-Schicht enthält die Benutzeroberfläche inklusive Dialogführung. Sie stellt damit die Daten der Fachkonzeptschicht dar. Diese bildet den funktionalen Kern des Programms, denn sie manipuliert die fachlichen Daten. Darunter liegt die Datenhaltungsschicht, die die Datenspeicherung realisiert. Das heißt, sie sorgt für den Zugriff auf gespeicherte Daten.

Durch die Anwendung dieses Modells werden Klassen weniger abhängig voneinander. Das wird auch Entkopplung genannt. Diese Entkopplung kannst du erreichen, indem du die verschiedenen Klassen aufteilst und Schichten durch einzelne Pakete modulierst und implementierst.

Konkretisierung der Fachkonzeptschicht

Folgt man der strengen Schichtenarchitektur, so können Objekte einer Schicht nur auf Objekte der direkt darunterliegenden Schicht zugreifen, nicht aber anders herum. Um das ganze etwas besser zu verstehen, erklären wir dir die einzelnen Schichten jetzt genauer.

Objekte einer Schicht können nur auf Objekte einer Schicht darunter zugreifen

Beginnen wir mit der Fachkonzeptschicht. Sie dient im Allgemeinen der Verwaltung der fachlichen Daten. Dies erfolgt meist mittels Containerklassen.  Containerklassen bestehen aus Objekten der zugehörigen Datenklasse, die über eine Komposition an den Container angebunden werden.

Das erstellte Containerobjekt besitzt wichtige Standardverwaltungsoperationen zum Hinzufügen und Löschen von Datenobjekten. Wir können aber auch mittels des sogenannten Iterator-Musters die Gesamtheit der in ihm enthaltenen Datenobjekte durchlaufen.

Die Fachkonzeptschicht verwaltet fachliche Daten

Wenn wir Objekte aus Datenklassen einer Containerklasse hinzufügen, werden deren Klassenattribute und -operationen zu den Objektattributen und -operationen der Containerklasse.

Dies ist allerdings für den konkreten Programmablauf nicht so wichtig, denn es wird nur ein Objekt der Containerklasse erzeugt. Das lässt sich mittels des sogenannten Singleton-Musters realisieren.

Singleton-Muster und Iterator-Muster

Das Singleton-Muster ist nichts weiter als ein Muster, das uns erlaubt, die Anzahl unserer erzeugten Objekte zu kontrollieren. Konkret müssen wir dafür unseren Konstruktor private deklarieren. Das klingt zwar erstmal sinnlos, aber nachher wird dir noch ein Licht aufgehen, warum.

Unsere Objekte verwalten wir nun durch ein Klassenattribut namens unique, auf das wir Zugriff über eine öffentliche Klassenoperation gewähren. Diese nennen wir instance().

Diese Funktion überprüft, wenn sie aufgerufen wird, ob bereits ein Objekt des Klassentyps vorhanden ist und ruft, wenn dies nicht der Fall ist, unseren Konstruktor auf. Dies ist nun möglich, da wir uns innerhalb derselben Klasse befinden.

Singleton-Muster

Das andere Muster, das wir brauchen, ist das bereits erwähnte Iterator-Muster. Es erlaubt uns Objekte einer intern verwalteten Liste von außen zu durchlaufen. Das hat den Vorteil, dass der Zugriff einheitlich erfolgt und unabhängig von der internen Implementierung bleibt.

Damit das funktioniert muss unsere Liste durch eine beliebige API-Collection-Klasse implementiert sein. Dann bauen wir in unserer Klasse die Schnittstelle java.lang.Iterable ein.

Nun können wir uns mittels der Methode iterator() den Iterator für die interne Liste zurückgeben lassen. Diese Methode ist bereits für alle Collection-Klassen implementiert.

Iterator-Muster

Aber wie durchlaufen wir jetzt alle Einträge? Dafür gibt es eine spezielle for-Schleife – und zwar die sogenannte for-each-Schleife.

Dabei steht Integer für den Typ der Listenelemente und a für die Klasse, die die Liste verwaltet oder in unserem Fall die Liste selbst.

Mit der for-each-Schleife durchlaufen wir alle Einträge

Jetzt weißt du alles Wichtige zur Fachkonzeptschicht. Im nächsten Beitrag erklären wir dir noch die GUI- und die Datenhaltungsschicht.


Andere Nutzer halten diese Inhalte aus dem Bereich „Java“ für besonders klausurrelevant

Hallo, leider nutzt du einen AdBlocker.

Auf Studyflix bieten wir dir kostenlos hochwertige Bildung an. Dies können wir nur durch die Unterstützung unserer Werbepartner tun.

Schalte bitte deinen Adblocker für Studyflix aus oder füge uns zu deinen Ausnahmen hinzu. Das tut dir nicht weh und hilft uns weiter.

Danke!
Dein Studyflix-Team

Wenn du nicht weißt, wie du deinen Adblocker deaktivierst oder Studyflix zu den Ausnahmen hinzufügst, findest du hier eine kurze Anleitung. Bitte lade anschließend die Seite neu.