Gamma / Helm / Johnson | Design Patterns | E-Book | sack.de
E-Book

E-Book, Deutsch, 480 Seiten

Reihe: mitp Professional

Gamma / Helm / Johnson Design Patterns

Entwurfsmuster als Elemente wiederverwendbarer objektorientierter Software
1. Auflage 2015
ISBN: 978-3-8266-9903-0
Verlag: mitp Verlags GmbH & Co.KG
Format: PDF
Kopierschutz: 0 - No protection

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: 0 - No protection



Der Bestseller von Gamma und Co. in komplett neuer Übersetzung
Das Standardwerk für die objektorientierte Softwareentwicklung
Zeitlose und effektive Lösungen für wiederkehrende Aufgaben im Softwaredesign

Mit Design Patterns lassen sich wiederkehrende Aufgaben in der objektorientierten Softwareentwicklung effektiv lösen. Die Autoren stellen einen Katalog einfacher und prägnanter Lösungen für häufig auftretende Aufgabenstellungen vor. Mit diesen 23 Patterns können Softwareentwickler flexiblere, elegantere und vor allem auch wiederverwendbare Designs erstellen, ohne die Lösungen jedes Mal aufs Neue selbst entwickeln zu müssen.

Die Autoren beschreiben zunächst, was Patterns eigentlich sind und wie sie sich beim Design objektorientierter Software einsetzen lassen. Danach werden die stets wiederkehrenden Designs systematisch benannt, erläutert, beurteilt und katalogisiert. Mit diesem Leitfaden lernen Sie, wie sich diese wichtigen Patterns in den Softwareentwicklungsprozess einfügen und wie sie zur Lösung Ihrer eigenen Designprobleme am besten eingesetzt werden.

Bei jedem Pattern ist angegeben, in welchem Kontext es besonders geeignet ist und welche Konsequenzen und Kompromisse sich aus der Verwendung des Patterns im Rahmen des Gesamtdesigns ergeben. Sämtliche Patterns entstammen echten Anwendungen und beruhen auf tatsächlich existierenden Vorbildern. Außerdem ist jedes Pattern mit Codebeispielen versehen, die demonstrieren, wie es in objektorientierten Programmiersprachen wie C++ oder Smalltalk implementiert werden kann.
Das Buch eignet sich nicht nur als Lehrbuch, sondern auch hervorragend als Nachschlagewerk und Referenz und erleichtert so auch besonders die Zusammenarbeit im Team.

Aus dem Inhalt:
Einführung
Fallstudie
Erzeugungsmuster
Abstract Factory
Builder
Factory Method
Prototype
Singleton
Strukturmuster
Adapter
Bridge
Composite
Decorator
Facade
Flyweight
Proxy
Verhaltensmuster
Chain of Responsibility
Command
Interpreter
Iterator
Mediator
Memento
Observer
State
Strategy
Template Method
Visitor

Stimmen zum Buch:
»Für Designer und Entwickler objektorientierter Software ist dieses Buch von großer Bedeutung! Design Patterns stellt einen geordneten Katalog bewährter Entwurfsmus-ter zur Strukturierung, Erstellung und Manipulation von Objekten vor. Am wichtigsten ist jedoch, dass die verschiedenen Design Patterns eindeutige Bezeichnungen erhalten, die ein gemeinsames Vokabular für die Arbeit im Team bereitstellen.«
- Rebecca J. Wirfs-Brock, Director, Object-Technology Services, Digitalk

»Design Patterns beendet die Debatte um die Wiederverwendung von Code und zeigt das entscheidende Element der Wiederverwendbarkeit von Software auf: wiederverwendbares Design. Sie werden feststellen, dass Sie diese Patterns im Nu in Ihren eigenen Designs einsetzen und wiederverwenden.«
- Steve Vinoski, Software Architect

Gamma / Helm / Johnson Design Patterns jetzt bestellen!

Zielgruppe


Programmierer und Softwareentwickler, Studenten

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


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.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.