1 / 11

-LABORPRAKTIKUM- SOMMERSEMESTER 2005

-LABORPRAKTIKUM- SOMMERSEMESTER 2005. „Umsetzung von Pattern“. Muster: Kompositum Gruppe: Karsten Ameling Anja Rothe Quelle: Gamma, E., Helm, R., Jonson, R., Vlissides, J., „Entwurfsmuster“, Addison Wesley, Bonn, 1996. Zweck. Kompositum (Composite): objektbasiertes Strukturmuster

floyd
Download Presentation

-LABORPRAKTIKUM- SOMMERSEMESTER 2005

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. -LABORPRAKTIKUM-SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: Kompositum Gruppe: Karsten Ameling Anja Rothe Quelle: Gamma, E., Helm, R., Jonson, R., Vlissides, J., „Entwurfsmuster“, Addison Wesley, Bonn, 1996

  2. Zweck • Kompositum (Composite): • objektbasiertes Strukturmuster • Zweck: • Zusammenfügung von Objekten zu Baumstrukturen, um Teil-Ganzes-Hierarchien zu repräsentieren • - ermöglicht es Klienten, sowohl einzelne Objekte als auch Kompositionen von Objekten einheitlich zu behandeln • Kompositum (Composite) • Zweck • Motivation • Anwendbarkeit • Struktur • Interaktionen • Konsequenzen • Implementierung • Verwandte Muster

  3. eineDatei eineDatei eineDatei eineDatei eineDatei eineDatei eineDatei einOrdner einOrdner einOrdner Motivation Beispielszenario: Dateisystem • Kompositum (Composite) • Zweck • Motivation • Anwendbarkeit • Struktur • Interaktionen • Konsequenzen • Implementierung • Verwandte Muster Abb. 1: rekursiv zusammengefügte Objektstruktur

  4. Anwendbarkeit • Die Verwendung des Kompositionsmusters bietet sich an, wenn • Teil-Ganzes-Hierarchien von Objekten repräsentiert werden sollen • Klienten in der Lage sein sollen, die Unterschiede zwischen zusammengesetzten und einzelnen Objekten zu ignorieren • Kompositum (Composite) • Zweck • Motivation • Anwendbarkeit • Struktur • Interaktionen • Konsequenzen • Implementierung • Verwandte Muster

  5. Struktur Klient Komponente Kompositum Operation() FuegeHinzu(Komponente) Entferne(Komponente) GibKindobjekt(int) Operation() FuegeHinzu(Komponente) Entferne(Komponente) GibKindobjekt(int) Operation() Blatt • Kompositum (Composite) • Zweck • Motivation • Anwendbarkeit • Struktur • Interaktionen • Konsequenzen • Implementierung • Verwandte Muster kindobjekte für alle g in kindobjekte g.Operation(); Abb. 2: grundlegende Struktur des Kompositionsmusters

  6. Interaktionen • Klassenschnittstelle von Komponente zur Interaktion mit Objekten in der Kompositionsstruktur verwendet • Fälle: • 1.) Empfänger ist ein Blatt: • - Anfrage wird direkt abgehandelt • 2.) Empfänger ist ein Kompositum: • - Weiterleitung der Anfrage an die Kindobjektkomponenten • - ggf. Ausführung zusätzlicher Operationen vor und/oder • nach der Weiterleitung • Kompositum (Composite) • Zweck • Motivation • Anwendbarkeit • Struktur • Interaktionen • Konsequenzen • Implementierung • Verwandte Muster

  7. Konsequenzen Das Kompositionsmuster + definiert Klassenhierarchien auf Basis von Klassen für primitive und zusammengesetzte Objekte + vereinfacht den Klienten dadurch, dass er Kompositions- strukturen und einzelne Objekte einheitlich behandeln kann + vereinfacht es, neue Arten von Komponenten hinzuzufügen - kann ihren Entwurf zu allgemein werden lassen • Kompositum (Composite) • Zweck • Motivation • Anwendbarkeit • Struktur • Interaktionen • Konsequenzen • Implementierung • Verwandte Muster

  8. Implementierung (1/3) Bei der Implementierung zu bedenkende Punkte: 1.) Explizite Referenz auf das Elternobjekt - Aufrechterhaltung von Referenzen vereinfacht Traversierung und Verwaltung einer Kompositionsstruktur 2.) Gemeinsame Nutzung von Komponenten- zur Senkung der Speicheranforderungen - ggf. Speicherung mehrfacher Elternobjekte durch die Kindobjekte 3.) Maximierung der Komponentenschnittstelle - Definition möglichst vieler gemeinsamer Operationen der Blatt- und Kompositionsklassen in der Komponentenklasse - Komponentenklasse bietet Defaultimplementierungen, die von den Blatt- und Kompositionsklassen überschrieben werden • Kompositum (Composite) • Zweck • Motivation • Anwendbarkeit • Struktur • Interaktionen • Konsequenzen • Implementierung • Verwandte Muster

  9. Implementierung (2/3) 4.) Deklaration von Verwaltungsoperationen für Kindobjekte- Entscheidung für den Ort der Definition nach Abwägen der Vor- und Nachteile bzgl. Sicherheit und Transparenz KomponentenklasseKompositionsklasse+ Transparenz + Sicherheit - Sicherheit - Transparenz 5.) Ort des Behälters für enthaltene Komponenten - Einfügen der Behälterreferenz in die Oberklasse (Komponenten-klasse) führt zur Verschwendung von Speicherplatz in den Blättern 6.) Ordnung der Kindobjekte - Entwurf von Zugriffs- und Verwaltungsschnittstellen zur korrekten Verwaltung der Kindobjekt-Reihenfolge erforderlich • Kompositum (Composite) • Zweck • Motivation • Anwendbarkeit • Struktur • Interaktionen • Konsequenzen • Implementierung • Verwandte Muster

  10. Implementierung (3/3) 7.) Verbessern des Laufzeitverhaltens durch Zwischenspeicherung (Caching) - Zwischenspeicherung von Traversierungs- und Suchinformationen über Kindobjekte in Kompositionsklasse möglich, um Traversierung oder Suche abzukürzen - Definition einer Schnittstelle erforderlich, um bei Änderungen einer Komponente die Invalidierung des Zwischenspeichers ihres Eltern- objektes zu erreichen 8.) Löschen der Komponenten - üblicherweise Kompositum für das Löschen seiner Kindobjekte zuständig gemacht, wenn es selbst gelöscht wird 9.) Datenstrukturen zum Speichern von Komponenten - Vielzahl von Datenstrukturen (z. B. verkettete Listen, Bäume, Arrays, Hash-Tabellen) zum Speichern von Kindobjekten geeignet - Wahl der Datenstruktur von der gewünschten Effizienz abhängig • Kompositum (Composite) • Zweck • Motivation • Anwendbarkeit • Struktur • Interaktionen • Konsequenzen • Implementierung • Verwandte Muster

  11. Verwandte Muster • Bezug zu anderen Entwurfsmustern • Zuständigkeitskette • Dekorierermuster • Fliegengewichtmuster • Iteratormuster • Besuchermuster • Kompositum (Composite) • Zweck • Motivation • Anwendbarkeit • Struktur • Interaktionen • Konsequenzen • Implementierung • Verwandte Muster

More Related