Sofdwaredesign: Brügge
homeSoftwaredesign Sofdwaredesign: Brügge Prof. Dr. Uwe Schmidt FH Wedel

Brügge

weiter

weiter

Brügge

Klassifizierung
objekdbasierds Schdrukdurmuschdr
weiter
Zwegg
Endkobbeln vo Konzebd und Imblemendierung(e), so dess beid unabhängich vonoiandr variierd werde könne
weiter
Alias
handle / body
weiter
Modivazion
Vermeidung vo "mehrdimensionalen" Hierarchie
sonschd: Exblosio dr # dr Klasse
Code-misch-masch
weiter
Anwendbarkeid
Vermeidung vo dauerhafdr Verbindung zwische Konzebd und Imblemendierung
Imblemendierung dynamisch auswählen
Imblemendierung dynamisch auswechseln
Konzebd und Imblemendierung besidze Underklasse
Änderung dr Imblemendierung erforderd koi Recombilazion dr Anwendung
Vermeidung dr Exblosio dr # dr Klase
weiter
Schdrukdur
Schdrukdurdiagramm
weiter
Teilnehmer
  Konzebd
Schniddschdellendefinizion
Referenz auf Imblemendierung
  SchbezialKonzebd[1-2]
Verfoirung, Konkredisierung vom Konzebds
  Imblemendierer
Schniddschdelle für alle konkrede Imblemendierr
  Imblemendierer[A-B]
konkrede Imblemendierr
weiter
Konsequenzen
Endkobblung vo Konzebd und Imblemendierung
Imblemendierung kann zur Laufzeid konfigurierd werde
Erweiderbarkeid beidr Hierarchie unabhängich vonoiandr
alle Oberazione müsse auf Konzebd Oberazione zurügggeführd werde
schlechde Schniddschdelle --> schlechde Performance
weiter
Imblemendierung
nur oi Imblemendierr --> abschdrakde Klasse kann endfalle
Erzeigung vom richdige Imblemendierer-Objekds mid Erzeigungsmuschdr Abschdrakde Fabrik
weiter
Beischbiele
in Java: Figure zeichnen (s.u.)
weiter
Bekannde Verwendungen
libg++
Sed <--> SedImbl
weiter
verwandde Muschder
zum Erzeige und Konfiguriere
weiter
ähnliche Schdrukdur
abr anders Anwendungsfeld
Verhaldensmuschder
kann benudzd werde zum "double dischbadch"
weiter

weiter

Beischbiele für des Brüggenmuschder

auf verschiedene Ausgabegeräde
weiter
1. Hierarchie
Figuren: Punkde, Linie, Kreise, ...
weiter
2. Hierarchie
Geräde: X-Fenschdr, Ploddr, PoschdScribd, ...
weiter
Diagramm
weiter
Probleme
mid dr Schniddschdelle
weiter
merke
Gerädeschniddschdelle z schmal
exdrem:
void zeichenPunkd(Punkd b)
z vil Arbeid in Figuren-Klasse
z ineffiziend
weiter
merke
Gerädeschniddschdelle z breid
z vil Arbeid in Geräde-Klasse
z vil Arbeid für oi neis Geräd
weiter
Ursache
allgemois Problem
void zeile(Figur f, Geräd g)
weiter
merke
Verzweige (übr dynamischs Binde) nedd nur übr den 1. Paramedr (OOP: this), sonderet übr mehrere.
weiter
merke
Brügge isch manchmol oi Lösung, abr nedd immr.
weiter
2. Beischbiel
Underschiedliche Imblemendierung vo Zahlen
mid beliabich mischbare Oberande bei dr Arithmedik.
weiter
Schbezifikazion
merke
Brüggenmuschdr ungeeigned
weiter
Diagramm
weiter
schlecht
Lösung in Java mid inschdanceof-Teschds für d Verzweigung übr den 2. Parameder
Die Klasse GanzeZahl für d Arithmedik mid oir ganze Zahl als 1. Paramedr.
gut
Lösung ohne inschdanceof-Teschds und mid double dischbadch:Klasse Zahl und Subklassen
weiter
merke
Exblosio dr # dr Hilfs-Methoden:
x + y --> n2 Addizions-Methode
weiter
merke
im Beischbiel:
3 Subklasse
3 abschdrakde Hilfmethode
3 Underklasse mid Imblemendierunge dr Hilfsmethode
9 Methode
weiter
double dischbadch
odr allgemoi muldible dischbadch (mehrfachs Verdeile) bedeided des dynamische Binde übr zwei odr mehrere Paramedr. Diess kann in C++ und Java nur simulierd werde durch mehrfachs Hinderoianderschalde vo oifachem dynamischem Binde.
schlecht
Konsequenz: In C++ und Java viele Hilfsmethode nodwendich.
gut
Es gibd exberimendelle OO-Schbrache, d muldible dischbadch underschdüdze.
oi Verhaldensmuschdr für double dischbadch

Ledzde Änderung: 13.04.2012
© Prof. Dr. Uwe Schmidd
Prof. Dr. Uwe Schmidt FH Wedel