• Keine Ergebnisse gefunden

Übung 05

N/A
N/A
Protected

Academic year: 2022

Aktie "Übung 05"

Copied!
14
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Übung 05

Design und Architektur

(2)

1.1 Kohäsion

• qualitatives Maß für die Kompaktheit einer Komponente

Idealzustand: jede Komponente (Methode, Klasse) für eine Aufgabe verantwortlich, die sie eigenständig lösen kann

ausschlaggebend: Beziehungen zwischen Elementen innerhalb einer Komponente

starke Kohäsion: alle Elemente sind nötig für die

Funktionstüchtigkeit der anderen internen Elemente, d.h. keine isolierten Elemente

schwache Kohäsion: Komponente erfüllt viele verschiedene

„responsibilities“ oder Elemente sind nur zusammengefasst, weil sie ähnliche Funktionalitäten anbieten

 Ausgliedern in neue Komponente bietet sich an

(3)

1.1 Kohäsion

(4)

1.2 Kopplung

• qualitatives Maß für die Schnittstellen zwischen Komponenten

Idealzustand: jede Komponente (Methode, Klasse) nur lose mit anderen verbunden

ausschlaggebend:

• Kopplungsmechanismus

• Schnittstellenbreite

• Kommunikationsart

lose Kopplung: Komponenten besitzen wenige Abhängigkeiten untereinander

enge Kopplung: Komponenten besitzen viele Abhängigkeiten untereinander

 Eine Änderung hat möglicherweise Auswirkung auf viele andere Komponenten!

(5)

1.2 Kopplung

(6)

1.2 Kopplung

A::doSomething() { B b = new B();

b.doSomethingElse();

}

A::doSomething(B b) {

b.doSomethingElse();

}

enge Kopplung lose Kopplung

(7)

1.2 Kopplung

Person::writeToDatabase() { DB db = new SQLiteDB();

db.updateRecord(this);

}

/* client code */

Person p = new Person("v", “n“);

p.writeToDatabase();

Person::writeToDatabase(DB db) { db.updateRecord(this);

}

/* client code */

Person p = new Person(“v“, “n“);

DB db = new SQLiteDB();

p.writeToDatabase(db);

enge Kopplung lose Kopplung

(8)

1.3 Kohäsion & Kopplung

• hohe Kohäsion und geringe Kopplung fördert Wartbarkeit und Anpassbarkeit

• Effekte von Änderungen auf engem Kreis von Komponenten beschränkt

• geringe Kohäsion und starke Kopplung

• in wie vielen und welchen Komponenten sind Änderungen nötig ..?

perfekter Zustand unerreichbar: Blob vs. einsame Klasse

Visitor Pattern:

• Kohäsion:

 hoch, da jeder Visitor genau eine Funktionalität anbietet

 hoch, da die Objektstruktur genau eine Funktionalität anbietet

• Kopplung:

✗ hoch, da Visitor Zugriff auf interne Datenstruktur benötigt

✗ hoch, da Visitor durch die Objektstruktur iterieren können muss

(9)

itz.de/fileadmin/user_upload/ausbildung/Pruefungen/Gesellenpruefungen/Fragezeichen.JPG

(10)

2. Model-View-Controller (MVC)

• erstmals beschrieben und implementiert in Smalltalk-80, ca. 1980

Ziele der Entkopplung von Modell und View sind:

 Komplexität der gesamten Architektur wird verringert

 Wiederverwendbarkeit, Flexibilität und Wartbarkeit des Programms wird erhöht

Vorteile der Entkopplung von Modell und View sind:

 höhere Kohäsion und geringere Kopplung als mit naivem/monolithischem Ansatz

 einfaches unit-testing möglich durch separation of concerns

 gleichzeitige Anzeige mehrerer Views pro Modell möglich

 Anpassung (neuer roter Button) an View möglich, ohne Modell ändern zu müssen

 verschiedene Views in Abhängigkeit vom Ausgabegerät (PDA, Smartphone, etc.)

(11)

2. Model-View-Controller (MVC)

Modell

• kapselt Zustand der Applikation

• nimmt Zustandsanfragen entgegen

• benachrichtigt Views über Änderungen

View

• fordert Daten von Modell an

• zeigt Modell an

• sendet User-Aktionen an Controller

Controller

• definiert Verhalten der Applikation

• verknüpft User-Aktionen mit Modell-

(12)

Zusätzlich: Observer-Pattern – Motivation

• mehrere visuelle

Repräsentationen der

Anwendungsdaten gewünscht

• Klassen sollen unabhängig voneinander sein

• Konsistenz der

Repräsentationen muss

jederzeit gewährleistet sein

(13)

Zusätzlich: Observer-Pattern – Struktur

(14)

p://www.hwk-chemnitz.de/fileadmin/user_upload/ausbildung/Pruefungen/Gesellenpruefungen/Fragezeichen.JPG

Referenzen

ÄHNLICHE DOKUMENTE

Ansicht einer Emma mitplastischem Omament v T.d. mit plastischem Ornamsm „ms &. iSi.ufij neben &. '\5t uR.)@1astab} Ansicht einer hemalcen Blättawe]le

[r]

Daniel Radcliffe (Harry Potter) singt "The

Weder Zahlenzeilen noch Zahlenspalten sind untereiander passf¨ahig: nach den Re- geln der Matrixmultiplikation kann man zwei Zahlenspalten, beide aus dem Vektor- raum R n ,

Wenn man von der Bedeutung des Mediums „Buch“ einmal absieht, das zur Begründung eines Bibliotheksbaus von Barth herangezogen wird, aber letztlich nicht ausreichen wird, um den Kos-

Es liegt auf der Hand, dass eine bestimmte Sequenz innerhalb des menschlichen Genoms – welches rund 3 Milliarden Basenpaare umfasst – nur mit Hilfe intelligenter

Dennoch ist die Geburtsstunde der Analysis nur wenige Genera- tionen von uns entfernt, bedenkt man, dass Euler noch lebte, als Gauss geboren wurde, Gauss noch lebte, als Klein

Auch sind einige Figuren, die einen ra¨umlichen Sachverhalt illustrieren sollen, nicht eben auf dem Standard, den man von einem der Geometrie gewidmeten Buch eigentlich erwartet..