$KK(Schichtenmodell) Wir haben gelernt, die Anzahl der Klienten einer Schnittstelle möglichst klein zu halten; Pakete sollten moeglichst eigenständige Einheiten, mit so wenig Abhängigkeit zu anderen Paketen, sein. Eine Möglichkeit zum Anordnen von Paketen bilden Schichtenmodelle. Als Beispiel dient das OSI-Schichtenmodell, sicherlich eines der bekanntesten Schichtenmodelle in der Informatik. $B(Bilder,osi.jpg,Bekanntes Beispiel für ein Schichtenmodell) Typisch an diesem Schichtenmodell ist * Der Abstraktionsgrad nimmt von der obersten bis zur untersten Ebene ab. * Eine Schicht ruft nur Operationen derselben Schicht, bzw. der nächst unteren Schicht auf. * Es wird nie eine Schicht übersprungen $B(Bilder,crclaye.gif,CRC Karte fuer einen Layer) Ein Schichtenmodell unterstützt die Wartbarkeit, da * Ändere ich die Schnittstelle in einer Schicht, so muss ich nur die Objekte der Nachbarschicht anpassen. * Austausch einer Schicht, hat keine Auswirkung auf die Umgebung (solange die Schnittstellen) eingehalten werden * Der Methodenfluß ist eindeutig. Er geht i.a. immer von der obersten zur untersten Schicht bzw. umgekehrt. (Variationen sind denkbar, z.B. Schichten die die Ergebnisse cachen)