Top Banner
OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe
18

OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Apr 06, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

OO Analyse und Entwurf für Anwender

XII. EntwurfsmusterDr. Michael Löwe

Page 2: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

2

Objektorientierte Analyse und Entwurf

Inhalt der Ausbildung

• Kennzeichen objektorientierter Softwareentwicklung (1)

• Projektorganisation (2)• Architektur (2)• Objektorientierte Analyse (4)• Objektorientierter Entwurf (3 von 5)• Realisierung und Test (2)

Page 3: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

3

Objektorientierte Analyse und Entwurf

Übungsbeispiel: Rückversicherung

Org.-Vertrag Ordnung{abstract}

Propostional Geschichtet

Prop-Anteilanteil:Prozent

SchichtLimit:Betrag

* *hat

1

*Anteil

{abstract}

RV-Kanal{abstract}

RV-Vertraghat 1* hat

[0,1]

Page 4: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

4

Objektorientierte Analyse und Entwurf

Lernziele

• Verständnis für die Wichtigkeit des Entwurfs• Einsicht in die Dreifaltigkeit

– Material, Werkzeug, Prozeß– Attribute, Operationen, Interaktion

• Gefühl für den Übergang Analyse / Entwurf• Kennenlernen der Beschreibungsmittel• Einsicht in den nötigen Detaillierungsgrad• Erlernen erster Faustregeln für guten Entwurf• Regeln für angemessene Benutzeroberflächen

Page 5: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

5

Objektorientierte Analyse und Entwurf

Inhalt

• Composite pattern• Decorator pattern• Adapter pattern• Command pattern• Mediator pattern• Observer pattern

Page 6: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

6

Objektorientierte Analyse und Entwurf

Composite Pattern

• Repräsentation von Teil-Ganzes-Hierarchien

• Vereinheitlichen von Teilen und Ganzem• Verstecken des Aufbaus vor Klienten

Page 7: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

7

Objektorientierte Analyse und Entwurf

Composite Pattern

Compositeoperation()

Component{abstract}

operation()Client

Leafoperation()

children

For all g in childreng.operation()

Page 8: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

8

Objektorientierte Analyse und Entwurf

Decorator Pattern

• Hinzufügen von Veranwortlichkeiten – dynamisch– transparent– ohne Seiteneffekte

• Für temporäre oder lokale Zusatzdienste• Wo Spezialisierung unübersichtlich wird

Page 9: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

9

Objektorientierte Analyse und Entwurf

Decorator Pattern

Decorator{abstract}

operation()

Component{abstract}

operation()Client

Concrete Componentoperation()

component

1

Decorator Aoperation()

Decorator Boperation()

component.operation()

Decorator::operation();addedBehavior()

Page 10: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

10

Objektorientierte Analyse und Entwurf

Adapter Pattern

• Benutzung einer Klasse, deren Schnittstelle nicht optimal paßt

• Anpassung von Schnittstellen an die Bedürfnisse des Klienten

• Herstellen einer in unterschiedlichen Kontexten wiederverwendbaren Klasse

Page 11: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

11

Objektorientierte Analyse und Entwurf

Adapter PatternTarget{abstract}

request()Adaptee

specRequest()

Adapter

Client

request() specRequest()

„implements“ „inherits“

Target{abstract}

request()Adaptee

specRequest()

Adapter

Client

request() adaptee.specRequest()

adaptee

„implements“

Page 12: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

12

Objektorientierte Analyse und Entwurf

Command Pattern

• Nachrichten als Objekte• Trennen von Versenden und Ausführung• Unterstützung für „undo“• Unterstützung für Log-Files• Basis für Objekt-Transaktionen

Page 13: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

13

Objektorientierte Analyse und Entwurf

Command Pattern

Client Invoker Command{abstract}

execute()

ConcreteCommandexecute()

Receiveraction()

receiver

receiver.action

Client Invoker Command{abstract}

execute()

ConcreteCommandexecute()

Receiveraction()

receiver

receiver.action

aReceiver aClient aCommand anInvoker

new(aReceiver)

storeCommand(aCommand)

executeaction

Page 14: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

14

Objektorientierte Analyse und Entwurf

Mediator Pattern

• Viele Objekte kommunizieren in komplexer Art

• Wiederverwendung eines Objekts scheitert an den vielfältigen Beziehungen

• Objektifizierung und damit Anpaßbarkeit komplexer Kommunikationsbeziehungen

Page 15: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

15

Objektorientierte Analyse und Entwurf

Mediator Pattern

Mediator Colleague

ConcreteMediator Colleague 2Colleague 1

mediatorKlassen:

Objekte:

m:Mediator

c1:colleague

c2:colleague

c3:colleague

c6:colleague

c5:colleague

c4:colleague

Page 16: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

16

Objektorientierte Analyse und Entwurf

Observer Pattern

• Umkehr von Beziehungen• Umkehrung der Bekanntschaftsverhältnisse• Benachrichtigung ohne Wissen darüber,

wer benachrichtigt werden muß• Erhöhung der Wiederverwendbarkeit

Page 17: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

17

Objektorientierte Analyse und Entwurf

Observer Pattern

ConcreteObserver

update()

Subjectattach(Observer)detach(Observer)

notify

observers

*

ConcreteSubject

setState()

getState()

Observer{abstract}

update()

subject

for all o:observerso.update

<2>

observerState=subject.getState()

<3>

setState(); notify()

<1>

Page 18: OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.

Entwurfsmuster Prof. Dr. Michael Löwe, FHDW, Hannover

18

Objektorientierte Analyse und Entwurf

Zusammenfassung

• Muster sind Faustregeln für guten Entwurf• Sie sind Entwurfsfragmente• Sie erhöhen die Wiederverwendung• Sie standardisieren den Entwurf• Sie sind bekannte Lösungen für

Entwurfsprobleme