E-Book, Deutsch, 480 Seiten
Reihe: mitp Professional
Gamma / Helm / Johnson Design Patterns
1., 2015
ISBN: 978-3-8266-9903-0
Verlag: mitp Verlags GmbH & Co.KG
Format: PDF
Kopierschutz: 1 - PDF Watermark
Entwurfsmuster als Elemente wiederverwendbarer objektorientierter Software
E-Book, Deutsch, 480 Seiten
Reihe: mitp Professional
ISBN: 978-3-8266-9903-0
Verlag: mitp Verlags GmbH & Co.KG
Format: PDF
Kopierschutz: 1 - PDF Watermark
Die Autoren sind auf dem Gebiet der objektorientierten Programmierung international anerkannte Experten. Dr. Erich Gamma war maßgeblich an der Entstehung der integrierten Entwicklungsumgebung Eclipse beteiligt und leitet seit 2011 bei der Microsoft Corporation in Zürich ein Team, das die Produktion der Entwicklungsumgebung Microsoft Visual Studio unterstützt. Dr. Richard Helm wurde 2005 mit dem ACM Programming Languages Award ausgezeichnet. Heute ist er Partner und Managing Director der Boston Consulting Group in Sydney. Dr. Ralph Johnson ist Professor des Fachbereichs Informatik der Universität von Illinois in Urbana und Champaign. Dr. John Vlissides (?2005) forschte am IBM Thomas J. Watson Research Center in Hawthorne, New York.
Zielgruppe
Programmierer und Softwareentwickler, Studenten
Autoren/Hrsg.
Weitere Infos & Material
1;Cover;1
2;Titel;11
3;Impressum;12
4;Inhaltsverzeichnis;15
5;Vorwort;19
6;Geleitwort von Grady Booch;23
7;Einleitung;25
8;Kapitel 1: Einführung;27
8.1;1.1 Was ist ein Design Pattern?;29
8.2;1.2 Design Patterns im Smalltalk MVC;32
8.3;1.3 Beschreibung der Design Patterns;34
8.4;1.4 Der Design-Patterns-Katalog;36
8.5;1.5 Aufbau des Katalogs;40
8.6;1.6 Die Anwendung von Design Patterns zur Behebung von Designproblemen;43
8.6.1;1.6.1 Passende Objekte finden;43
8.6.2;1.6.2 Objektgranularität bestimmen;44
8.6.3;1.6.3 Objektschnittstellen spezifizieren;44
8.6.4;1.6.4 Objektimplementierungen spezifizieren;46
8.6.5;1.6.5 Wiederverwendungsmechanismen einsetzen;51
8.6.6;1.6.6 Strukturen der Laufzeit und beim Kompilieren abstimmen;56
8.6.7;1.6.7 Designänderungen berücksichtigen;58
8.7;1.7 Auswahl eines Design Patterns;65
8.8;1.8 Anwendung eines Design Patterns;67
9;Kapitel 2: Fallstudie: Erstellung eines Texteditors;69
9.1;2.1 Designprobleme;69
9.2;2.2 Dokumentstruktur;71
9.2.1;2.2.1 Rekursive Komposition;73
9.2.2;2.2.2 Glyphen;74
9.2.3;2.2.3 Das Design Pattern Composite (Kompositum);77
9.3;2.3 Formatierung;78
9.3.1;2.3.1 Kapselung des Formatierungsalgorithmus;78
9.3.2;2.3.2 Die Unterklassen Compositor und Composition;79
9.3.3;2.3.3 Das Design Pattern Strategy (Strategie);81
9.4;2.4 Ausgestaltung der Benutzeroberfläche;82
9.4.1;2.4.1 Durchsichtige Umhüllung (Transparent Enclosure);82
9.4.2;2.4.2 Die Unterklasse MonoGlyph;84
9.4.3;2.4.3 Das Design Pattern Decorator (Dekorierer);86
9.5;2.5 Unterstützung mehrerer Look-and-Feel-Standards;87
9.5.1;2.5.1 Abstrahierung der Objekterzeugung;87
9.5.2;2.5.2 Factories und Produktklassen;88
9.5.3;2.5.3 Das Design Pattern Abstract Factory (Abstrakte Fabrik);91
9.6;2.6 Unterstützung mehrerer Fenstersysteme;92
9.6.1;2.6.1 Eignung des Design Patterns Abstract Factory (Abstrakte Fabrik);92
9.6.2;2.6.2 Kapselung von Implementierungsabhängigkeiten;93
9.6.3;2.6.3 Die Klassenhierarchien Window und WindowImp;95
9.6.4;2.6.4 Das Design Pattern Bridge (Brücke);99
9.7;2.7 Userseitige Operationen;100
9.7.1;2.7.1 Kapselung eines Requests;101
9.7.2;2.7.2 Die Command-Klasse und ihre Unterklassen;102
9.7.3;2.7.3 Die Funktion Undo (Rückgängig);103
9.7.4;2.7.4 Befehlshistorie;104
9.7.5;2.7.5 Das Design Pattern Command (Befehl);106
9.8;2.8 Rechtschreibprüfung und Silbentrennung;107
9.8.1;2.8.1 Zugriff auf verteilte Informationen;107
9.8.2;2.8.2 Kapselung von Zugriff und Traversierung;108
9.8.3;2.8.3 Die Iterator-Klasse und ihre Unterklassen;110
9.8.4;2.8.4 Das Design Pattern Iterator (Iterator);113
9.8.5;2.8.5 Traversierung kontra Traversierungsaktionen;113
9.8.6;2.8.6 Kapselung der Analyse;114
9.8.7;2.8.7 Die Visitor-Klasse und ihre Unterklassen;119
9.8.8;2.8.8 Das Design Pattern Visitor (Besucher);120
9.9;2.9 Zusammenfassung;121
10;Kapitel 3: Erzeugungsmuster (Creational Patterns);125
10.1;3.1 Abstract Factory (Abstrakte Fabrik);130
10.2;3.2 Builder (Erbauer);141
10.3;3.3 Factory Method (Fabrikmethode);151
10.4;3.4 Prototype (Prototyp);163
10.5;3.5 Singleton (Singleton);174
10.6;3.6 Weitere Erläuterungen zu den Erzeugungsmustern;183
11;Kapitel 4: Strukturmuster (Structural Patterns);187
11.1;4.1 Adapter (Adapter);189
11.2;4.2 Bridge (Brücke);202
11.3;4.3 Composite (Kompositum);214
11.4;4.4 Decorator (Dekorierer);228
11.5;4.5 Facade (Fassade);239
11.6;4.6 Flyweight (Fliegengewicht);249
11.7;4.7 Proxy (Proxy);264
11.8;4.8 Weitere Erläuterungen zu den Strukturmustern;277
11.8.1;4.8.1 Adapter (Adapter, siehe Abschnitt 4.1) kontra Bridge (Brücke, siehe Abschnitt 4.2);277
11.8.2;4.8.2 Composite (Kompositum, siehe Abschnitt 4.3) kontra Decorator (Dekorierer, siehe Abschnitt 4.4) kontra Proxy (Proxy, siehe Abschnitt 4.7);278
12;Kapitel 5: Verhaltensmuster (Behavioral Patterns);281
12.1;5.1 Chain of Responsibility (Zuständigkeitskette);282
12.2;5.2 Command (Befehl);294
12.3;5.3 Interpreter (Interpreter);306
12.4;5.4 Iterator (Iterator);322
12.5;5.5 Mediator (Vermittler);340
12.6;5.6 Memento (Memento);351
12.7;5.7 Observer (Beobachter);362
12.8;5.8 State (Zustand);374
12.9;5.9 Strategy (Strategie);385
12.10;5.10 Template Method (Schablonenmethode);396
12.11;5.11 Visitor (Besucher);402
12.12;5.12 Weitere Erläuterungen zu den Verhaltensmustern;419
12.12.1;5.12.1 Variieren der Kapselung;419
12.12.2;5.12.2 Objekte als Argumente;420
12.12.3;5.12.3 Kommunikation: Kapseln oder Verteilen?;420
12.12.4;5.12.4 Absender und Empfänger entkoppeln;421
12.12.5;5.12.5 Zusammenfassung;424
13;Kapitel 6: Schlusswort der Autoren;427
13.1;6.1 Was kann man von Design Patterns erwarten?;427
13.1.1;6.1.1 Ein gemeinsames Designvokabular;428
13.1.2;6.1.2 Eine Dokumentations- und Lernhilfe;428
13.1.3;6.1.3 Eine Ergänzung zu existierenden Methoden;429
13.1.4;6.1.4 Zielsetzungen für Refactorings;430
13.2;6.2 Eine kleine Kataloggeschichte;432
13.3;6.3 Die Pattern-Gemeinde;433
13.3.1;6.3.1 Christopher Alexanders »Muster-Sprache«;434
13.3.2;6.3.2 Patterns in Softwaresystemen;435
13.4;6.4 Eine Einladung;436
13.5;6.5 Ein abschließender Gedanke;437
14;Anhang A: Glossar;439
15;Anhang B: Notationshinweise;445
15.1;B.1 Klassendiagramme;446
15.2;B.2 Objektdiagramme;449
15.3;B.3 Interaktionsdiagramme;449
16;Anhang C: Fundamentale Klassen;451
16.1;C.1 Die Klasse List;451
16.2;C.2 Iterator;454
16.3;C.3 ListIterator;454
16.4;C.4 Point;455
16.5;C.5 Rect;456
17;Anhang D: Quellenverzeichnis;457
18;Stichwortverzeichnis;463




