1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und...

51
1 1. M uster 2. D as Singleton Pattern 3. W eitere D esign Pattern Design-Pattern

Transcript of 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und...

Page 1: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

1

1. Muster

2. Das Singleton Pattern

3. Weitere Design Pattern

Design-Pattern

Page 2: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

2

1. Muster

Begriff und Bedeutung

Geschichte der Entwurfsmuster

Bestandteile und Beschreibung von Mustern

Page 3: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

3

1. Wiederverwendung von Wissen in der Softwareentwicklung

Komponenten (Bausteine)

Bibliotheken (Komponentensammlungen)

Rahmenwerken, engl. Frameworks (wiederverwendbare Entwürfe)

Programmgeneratoren, Wizards

Muster, engl. Pattern (Problemlösungen)

Anti-Muster (Problemlösungen, die nicht funktionieren)

Prinzipien und Heuristiken

Handbücher (Anleitungen)

Page 4: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

4

1. Muster- allgemeiner Begriff

„Pattern“ im Websters Dictionary

1: a form or model proposed for imitation, see exemplar

2: something designed or used as a model for making things; e.g. a

dressmaker‘s pattern

3: a model for making a mold into which molten metal is poured to form

a casting

4: an artistic, musical, literary, or mechanical design or form

5: a natural or chance configuration; e.g. frost pattern

„Muster“ im Brockhaus, 1993

1) Vorlage, nach der etwas hergestellt wird

2) etwas ins seiner Art Vollkommenes, Vorbild

Page 5: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

5

1. Muster- Theorie des Lernens

Ein Mensch lernt, indem

• er Beispiele beobachtet bzw. Erfahrungen macht,

• die Beobachtungen generalisiert, abstrahiert und

• daraus allgemeine Regeln (Muster) ableitet.

• Diese werden dann erprobt und wenn nötig modifiziert

Das gilt auch für Problemlösungen:

• erprobte Lösungen werden immer wieder eingesetzt,

(allerdings oft auch dann, wenn sie unangebracht sind)

damit reduziert sich der Aufwand der Problemlösung

Ein großer Teil der Kultur beruht auf erprobten Lösungen,

z.B. Sprache, Schrift, Technik.

Die praktische Ausbildung eines Menschen umfaßt daher

vor allem die Weitergabe erprobter Lösungen.

Page 6: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

6

1. Muster- Katalog vs. Mustersprache

Katalog

• eine beliebige Sammlung von Mustern, die in der Regel nach

demselben Schema beschrieben sind

Mustersprache (pattern language)

• ein System von Mustern,

• die sich mit demselben Gebiet befassen

• die sich gegenseitig ergänzen

• deren Beziehungen und Kombinationsmöglichkeiten explizit

aufgezeigt werden

• es können durch Kombination der Muster größere Probleme gelöst

werden, als das mit einzelnen Mustern möglich ist

• auch zur Herleitung eines Entwurfs verwendbar

Page 7: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

7

1. Muster in der Softwareentwicklung- Geschichte (1)

Muster in der Architektur: Christopher Alexander

• In seinem Buch „A Pattern Language“ (1977) beschreibt Alexander

ein System von Mustern zur Architektur auf den Ebenen

• Landschaftsplanung

• Stadtplanung

• einzelne Gebäude

• einzelne Räume

• „Each pattern describes a problem which occurs over and over

again in our environment, and then describes the core of the

solution to that problem, in such a way that you can use this

solution a million times over, without ever doing it the same way

twice.“ (Alexander, 1977, S. x)

• Definition Muster: Lösung eines Problems in einem Kontext

Page 8: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

8

1. Muster in der Softwareentwicklung- Geschichte (2)

Muster in der Softwareentwicklung

• Kent und Cunningham bezogen von Alexander ihre

Inspiration für

Entwurfsmuster in der Software-Entwicklung (etwa 1987)

• Ab etwa 1990 gibt es Workshops über Software-

Architektur, bei

denen auch über Entwurfsmuster diskutiert wird.

• Gamma, Vlissides, Johnson und Helm veröffentlichen

1995 das

Buch „Design Patterns“ und machen damit Entwurfsmuster

populär.

• Seither steigt die Anzahl der Publikationen exponentiell.

• Seit 1994 gibt es die Konferenz PLoP (Pattern Languages

of

Program Design); später kamen die Konferenzen EuroPLoP

(1996)

und ChiliPLoP (1997) dazu.

Page 9: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

9

1. Muster in der Softwareentwicklung- Begriff „Muster“ (Riehle, 1997)

• Ein Muster ist eine in einem bestimmten Kontext erkennbare Form.

• Es dient als Vorlage zum Erkennen, Vergleichen und Erzeugen von

Musterexemplaren.

• Ein Muster ist die Essenz aus Erfahrung und Analyse

immerwiederkehrender

Situationen.

• Es besitzt eine innere Struktur und Dynamik.

Page 10: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

10

1. Muster in der Softwareentwicklung- Arten

• Verbreitet:

• Analysemuster

• Architekturmuster

• Entwurfsmuster

• Idiome

• Noch eher selten:

• Prozeßmuster, Vorgehensmuster (z.B. für Test, Review)

• Organisationsmuster

• Neue Idee:

• Antipatterns: beschreiben häufig gewählte falsche Lösungen für

• bestimmte Probleme und machen alternativen

Lösungsvorschlag

Page 11: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

11

1. Muster in der Softwareentwicklung- Begriff „Design Pattern“ (Gamma et.al., 1995)

A description of an object-oriented design technique which names,

abstracts and identifies aspects of a design structure that are

useful for creating an object-oriented design.

The design pattern identifies classes and instances, their roles,

collaborations and responsibilities. Each design pattern focuses

on a particular object-oriented design problem or issue. It

describes when it applies, whether it can be applied in the

presence of other design constraints, and the consequences and

trade-offs of its use.

Page 12: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

12

1. Muster in der Softwareentwicklung- Eigenschaften von Entwurfsmustern

• Ein Entwurfsmuster dokumentiert vorhandene, erprobte

Entwurfserfahrung; diese kann dadurch wiederverwendet werden

• Die durch Entwurfsmuster beschriebenen Abstraktionen liegen

über der Stufe einzelner Klassen (Mikroarchitektur)

• Entwurfsmuster können flexibel kombiniert werden

• Entwurfsmuster helfen bei der Erstellung und der Dokumentation

komplexer und heterogener Software-Architekturen

• Entwurfsmuster unterstützen Entwurfseigenschaften wie

Änderbarkeit und Wiederverwendbarkeit

• Entwurfsmuster bilden ein Vokabular für den Entwurf und

erleichtern daher die Kommunikation

• Entwurfsmuster können auch beim Reengineering vorhandener

Software als Analysemittel dienen

Page 13: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

13

1. Muster in der Softwareentwicklung- Aufbau eines Musters

4 grundlegende Elemente

1. Mustername

2. Problemabschnitt

3. Lösungsabschnitt

4. Konsequenzabschnitt

Page 14: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

14

1. Muster in der Softwareentwicklung- Beschreibung von Entwurfsmustern (Gamma et.al.)

1. Mustername und Klassifizierung

2. Zweck

3. Auch bekannt als

4. Motivation

5. Anwendbarkeit

6. Struktur

7. Teilnehmer

8. Interaktionen

9. Konsequenzen

10. Implementierung

11. Beispielcode

12. Bekannte Verwendungen

13. Verwandte Muster

Leider gibt es bisher kein einheitliches Format zur Musterbeschreibung!

Page 15: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

15

1. Muster in der Softwareentwicklung- Beschreibung von Entwurfsmustern

Name

• Problem (problem)• Kontext (context): Bereich, in der das Problem auftritt• Einflußfaktoren (forces), die berücksichtigt werden müssen

• Lösung (solution): Struktur und Dynamik

• Einschränkungen (constraints)

• Implementierung (implementation)• Beispiele, Varianten, bekannte Verwendungen, verwandte Muster,...

Leider gibt es bisher kein einheitliches Format zur Musterbeschreibung!

Page 16: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

16

Das Singleton-Pattern

2.1 Das GOF-Singleton-Pattern

2.2 Optimierungen und Implementierungsvarianten des Singleton-Patterns

Design Pattern

Page 17: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

17

2.1 Das GOF-Singleton-Pattern (1)- ein objektbasiertes Erzeugungsmuster

Zweck: Sichere ab, daß eine Klasse genau ein Exemplar besitzt und stelle einen globalen Zugriffspunkt darauf bereit. (Garantie eines einzigen Exemplars)

Motivation/Anwendbarkeit: Bei manchen Klassen ist es wichtig, dass es genau ein Exemplar

gibt.

Struktur:

Teilnehmer: Singleton definiert eine Instance()-Operation

Interaktionen: Clienten greifen ausschließlich durch die Instance()-Operation der Singleton-Klasse zu

Page 18: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

18

2.1 Das GOF-Singleton-Pattern (2)- ein objektbasiertes Erzeugungsmuster

Implementierung: “Singleton.h“

#ifndef __CSingleton#define __CSingleton

class CSingleton{

public:static CSingleton* Instance();

protected: CSingleton(); private: static CSingleton* _instance;};

#endif // __CSingleton

Page 19: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

19

2.1 Das GOF-Singleton-Pattern (3)- ein objektbasiertes Erzeugungsmuster

Implementierung: “Singleton.cpp“

#include ".\Singleton.h"

CSingleton* CSingleton::_instance = 0; CSingleton* CSingleton::Instance() { if (_instance == 0) { _instance = new CSingleton; } return _instance; }

CSingleton::CSingleton(){}

Page 20: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

20

2.1 Das GOF-Singleton-Pattern (4)- ein objektbasiertes Erzeugungsmuster

Implementierung: “mainprg.cpp“

#include<iostream>#include "Singleton.h"using namespace std;

int main(){

CSingleton * my1stSingleton;my1stSingleton=CSingleton::Instance();

CSingleton * my2ndSingleton;my2ndSingleton=CSingleton::Instance();

cout << "my1stSingleton Adress = " << my1stSingleton << endl;cout << "my2ndSingleton Adress = " << my2ndSingleton << endl;

return 0;}

Page 21: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

21

Konsequenzen:

1. Zugriffskontrolle auf das Exemplar (Instance)

2. Eingeschränkter Namensraum: Keine Überfrachtung

des globalen Namensraumes mit globaler Variable

3. Verfeinerung von Operationen und Repräsentation

4. Variable Anzahl von Exemplaren (Instances)

Beispiel: Tripleton

5. Flexibler als Klassenoperationen

2.1 Das GOF-Singleton-Pattern (5)- ein objektbasiertes Erzeugungsmuster

Page 22: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

22

• Verbesserung des Schutzes vor unerlaubter Kopie eines Singletons

und unerlaubten Löschens eines Singleton-Pointers

Idee: private Sichtbarkeit von Constructor, Copy-Constructor,

Destructor und Zuweisungsoperator

Rückgabe einer Referenz anstelle eines Pointers

Headerfile: “Singleton.h“

class Singleton

{

public:

Singleton & Instance();

… operations …

private:

Singleton();

Singleton(const Singleton&);

Singleton & operator=(const Singleton&);

~Singleton();

}

2.2 Optimierungen und Implementierungsvariantendes Singleton-Pattern (1)

Page 23: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

23

3. Weitere Design-Pattern

Page 24: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

24

Das Observer-Pattern

Page 25: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

25

Das Observer-Pattern

Page 26: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

26

Page 27: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

27

Page 28: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

28

Page 29: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

29

Page 30: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

30

Page 31: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

31

Page 32: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

32

Page 33: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

33

Das Template Method -Pattern

Page 34: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

34

Template Method-Pattern:

Client

Applikation

Framework

Abstract Class:

TemplateMethod()PrimitiveOperation1()PrimitiveOperation2()

Concrete Class

PrimitiveOperation1()PrimitiveOperation2()

Fachlicher Code Fachlicher Code

{ Primitive Method Primitive Method }

Intent: define the skeleton of an algorithm in an operation, defering same steps to subclasses. Template methods lets subclasses redefine certain steps of algorithm without changing the algorithm´s structure.Applicability: - Framework developmentStructure:

Hooks

OOA OOD edit compile link init runtime shutdown

Wann Object-Composition, Object-Intentions (class)...

Early Binding Late Binding Polymorphie

Runtime TypeInformationReflection Pattern

MetaClassClass

Page 35: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

35

Abstract Factory-Pattern:

Client

Abstract Factory:

CreateProductA()CreateProductB()

Concrete Factory1

CreateProductA()CreateProductB()

Intent: provide interface for creating families of related objectsApplicability: - a system (client) should be independent of how its products are created, composed and represented

- a system should be configured with one of multiple families of products - you want a class library of products; you want the interface, not the implementation

Example: DCOM – Object AktivierungStructure:

Abstract Product A

Product A1Product A2

Concrete Factory2

CreateProductA()CreateProductB()

Abstract Product B

Product B1Product B2

Page 36: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

36

Das Abstract Factory-Pattern

Page 37: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

37

Das Composite-Pattern (1)- ein objektbasiertes Strukturmuster

Zweck: Füge Objekte zu Baumstrukturen zusammen, um Teil-Ganzes-Hierarchien zu repräsentieren. Das Kompositionsmuster ermöglicht es Klienten, sowohl einzelne Objekte als auch Kompositionen von Objekten einheitlich zu behandeln.

Motivation/Anwendbarkeit: Unterklassen Linie, Rechteck und Text einer abstrakten Klasse

Grafik

Page 38: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

38

Das Composite-Pattern (2)- ein objektbasiertes Strukturmuster

Struktur:

Anwendbarkeit:• Sie wollen Teil-Ganzes-Hierarchien von Objekten repräsentieren.• Sie wollen, daß Klienten in der Lage sind, die Unterschiede

zwischen zusammengesetzten Objekten zu ignorieren. Klienten behandeln alle Objektein der zusammengesetzten Struktur einheitlich.

Page 39: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

39

Das Composite-Pattern (3)- ein objektbasiertes Strukturmuster

Teilnehmer:• Component

• deklariert die Schnittsstelle für Objekte in der zusammengesetzten Struktur

• implementiert ggf. ein Defaultverhalten für die gemeinsame Schnittstelle aller Klassen

• deklariert eine Schnittstelle zum Zugriff/zur Verwaltung von Kindobjekt-komponenten

• definiert optional eine Schnittstelle zum Zugriff auf das Elternobjekt einer Komponente innerhalb einer rekursiven Struktur und implementiert sie ggf.

• Leaf• repräsentiert Blattobjekte in der Komposition. Ein Blatt besitzt

keine Kindobjekte.• definiert Verhalten für die primitiven Objekte in der

Komposition• Composite

• def. Verhalten für Komponenten, die Kindobjekte haben können.

• speichert Kindobjektkomponenten• implementiert kindobjekt-bezogene Operationen

• Client• manipuliert die Objekte in der Komposition durch die

Schnittstelle der Komponente (Component)

Page 40: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

40

Das Composite-Pattern (4)- ein objektbasiertes Strukturmuster

Interaktionen: Klienten verwenden die Klassenschnittstelle von Komponente, um mit Objekten in der Kompositionsstruktur zu interagieren. Wenn der Empfänger ein Blatt ist, wird die Anfrage direkt abgehandelt. Wenn der Empfänger ein Kompositum ist, leitet es zumeist die Anfrage an seine Kindobjektkomponenten weiter. Möglicherweise führt es zusätzliche Operationen vor und/oder nach der Weiterleitung aus.

Konsequenzen: Primitive Objekte können rekursiv zu komplexeren Objekten zusammengesetzt werden• Vereinfachung des Klienten (aus der Sicht des Klienten kein

Unterschied zwischen einfachen Blattobjekten und Kompositionsobjekten)

• Einfaches Hinzufügen neuer Komponenten• Einschränkung der möglichen Komponenten eines

Kompositums erschwert (zusätzliche Typüberprüfung zur Laufzeit nötig)

Implementierung:

Page 41: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

41

Composite-Pattern:

Intent: Compose objects into tree structure to represent part-whole hierarchieHint: Composite Pattern = Pattern CompositionApplicability: - port-whole hierarchie

- client will ignore difference between composition of objects and individual objects Structure:

Participants: Component: - declares interface for objects in the composition

- implements default behaviour for the interfaces common to all classes- declares interface for accessing and managing- (optional) defines an interface for accessing a components parent in a recursive structure

Leaf: - represents a leaf object, a leaf has no children- defines behaviour of primitive objects

Composite: - represents behaviour for components being children, store child components- implements child-related operations in the component interface

Component<<abstract>>

Operation:Add(Component)

Remove(Component)

Leaf

Operation:%

Composite

Operation:Add(Component)

Remove(Component)

Composition

Page 42: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

42

Das Strategy-Pattern

Page 43: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

43

Das Proxy-Pattern

z.B. Smartpointer

Page 44: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

44

Das Bridge-Pattern (Handle-Body-Idiom)

Page 45: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

45

Das Facade-Pattern

Page 46: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

46

Active Object Design Pattern - Class Diagram

Context

Hint: Servant as Context, which is a Façade to ApplicationsDynamics: Method request construction and scheduling,

Method request execution, Completion

Passive Object

Page 47: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

47

Active Object - CRC Model 1/2

Page 48: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

48

Active Object - CRC Model 2/2

Page 49: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

49

Active Object Design Pattern - Sequence Diagram

Page 50: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

50

Das State-Pattern

Page 51: 1 Design-Pattern. 2 1. Muster Begriff und Bedeutung Geschichte der Entwurfsmuster Bestandteile und Beschreibung von Mustern.

51

Das Decorator-Pattern