Entwurfsmuster von Kopf bis Fuß

Eric Freeman, Elisabeth Robson, Kathy Sierra und Bert Bates

Diese Publikation zitieren

Eric Freeman, Elisabeth Robson, Kathy Sierra, Bert Bates, Entwurfsmuster von Kopf bis Fuß (2015), O'Reilly Verlag, Heidelberg, ISBN: 9783955619879

4788
Accesses
76
Quotes

Beschreibung / Abstract

Jetzt aktuell zu Java 8: Dieses Buch ist ein moderner Klassiker zum Thema Entwurfsmuster. Mit dem einzigartigen Von Kopf bis Fuß-Lernkonzept gelingt es den Autoren, die anspruchsvolle Materie witzig, leicht verständlich und dennoch gründlich darzustellen. Jede Seite ist ein Kunstwerk für sich, mit vielen visuellen Überraschungen, originellen Comic-Zeichnungen, humorvollen Dialogen und geistreichen Selbstlernkontrollen. Spätestens, wenn es mal wieder heißt "Spitzen Sie Ihren Bleistift", wird dem Leser klar, dass bei diesem Buch sein Mitmachen gefragt ist. Das ist nicht nur unterhaltsam, sondern auch effektiv: Komplexe Sachverhalte lassen sich nach Erkenntnis der modernen Lernwissenschaft am gründlichsten über mehrere verschiedene Kanäle verstehen. Das Buch verspricht dem Leser daher nicht nur Spaß beim Lernen, er wird nach der Lektüre auch die Herausforderungen des Software-Designs meistern können.

Inhaltsverzeichnis

  • BEGINN
  • Die Autoren/Entwickler von >>Entwurfsmuster von Kopf bis Fuß<<
  • Die Köpfe hinter dieser Reihe
  • Über die Übersetzer dieses Buchs
  • Der Inhalt (in der Übersicht)
  • Der Inhalt (jetzt ausführlich)
  • Einführung
  • Für wen ist dieses Buch?
  • Und wir wissen, was Ihr Gehirn gerade denkt.
  • Metakognition
  • Ihr Gehirn untertan zu machen
  • Fachgutachter
  • Danksagungen
  • 1 Einführung in Entwurfsmuster
  • Alles begann mit einer simplen SimEnte-Anwendung
  • Aber jetzt müssen die Enten fliegen lernen
  • Aber etwas ging schrecklich schief
  • Eike denkt über Vererbung nach
  • Und wie wäre es mit einem Interface?
  • Was würden Sie tun, wenn Sie an Eikes Stelle wären?
  • Die eine Konstante bei der Software-Entwicklung
  • Das Problem einkreisen
  • Das, was veränderlich ist, von dem trennen, was gleich bleibt
  • Entenverhalten entwerfen
  • Das Entenverhalten implementieren
  • Die Entenverhalten integrieren
  • Integration fortgesetzt ...
  • Den Enten-Code testen
  • Verhalten dynamisch setzen
  • Noch mal im Ganzen: Gekapseltes Verhalten
  • HAT-EIN kann IST-EIN überlegen sein
  • Da wir gerade von Entwurfsmustern sprechen ...
  • Im Bistro an der Ecke aufgeschnappt ...
  • Im Büro nebenan aufgeschnappt ...
  • Die Macht eines gemeinsamen Mustervokabulars
  • Wie verwende ich Entwurfsmuster?
  • Werkzeuge für Ihren Design-Werkzeugkasten
  • 2 Das Observer-Muster
  • Die Wetterstation-Anwendung im Überblick
  • Die Klasse WetterDaten entpacken
  • Was wir bisher wissen
  • Einfach mal drauflos: Unser erster Entwurf
  • Was ist das Problem mit unserer Implementierung?
  • Gestatten: das Observer-Muster
  • Herausgeber + Abonnenten = Observer-Muster
  • Ein Tag im Leben des Observer-Musters
  • Fünf-Minuten-Drama: ein Subjekt unter Beobachtung
  • Die Definition des Observer-Musters
  • Die Definition des Observer-Musters: das Klassendiagramm
  • Die Macht der losen Kopplung
  • Die Wetterstation entwerfen
  • Die Wetterstation implementieren
  • Das Interface Subjekt in WetterDaten implementieren
  • Lassen Sie uns jetzt die Anzeigeelemente aufbauen
  • Die Wetterstation in Betrieb nehmen
  • Javas eingebautes Observer-Muster verwenden
  • Wie Javas eingebautes Observer-Muster funktioniert
  • Die Wetterstation mit der eingebauten Unterstützung überarbeiten
  • Die dunkle Seite von java.util.Observable
  • Andere Orte im JDK, an denen Sie auf das ­Observer-Muster stoßen
  • Und der Code ...
  • Werkzeuge für Ihren Design-Werkzeugkasten
  • 3 Das Decorator-Muster
  • Willkommen bei Sternback-Kaffee
  • Das Offen/Geschlossen-Prinzip
  • Dürfen wir vorstellen: das Decorator-Muster!
  • Ein Getränk mit Dekorierern aufbauen
  • Die Definition des Decorator-Musters
  • Unsere Getränke dekorieren
  • Gespräch im Büro
  • Neue Angestellte einarbeiten
  • Den Sternback-Code schreiben
  • Getränke programmieren
  • Die Zutaten programmieren
  • Kaffee servieren
  • Dekorierer aus der Praxis: Java I/O
  • Die java.io-Klassen dekorieren
  • Einen eigenen I/O-Dekorierer schreiben
  • Den neuen Java I/O-Dekorierer testen
  • Werkzeuge für Ihren Design-Werkzeugkasten
  • 4 Das Factory-Muster
  • Die Aspekte identifizieren, die veränderlich sind
  • Aber es müssen noch mehr Pizzas hinzugefügt werden
  • Die Objekt-Erstellung kapseln
  • Eine einfache Pizzafabrik erstellen
  • Die Pizzeria-Klasse überarbeiten
  • Die Definition der einfachen Fabrik
  • Von der Pizzeria zur Pizzeria-Kette
  • Ein Framework für die Pizzeria
  • Die Unterklassen entscheiden lassen
  • Eröffnen wir also eine Pizzeria
  • Eine Fabrikmethode deklarieren
  • Uns fehlt nur noch eine Sache: Pizza!
  • Jetzt ist es endlich Zeit, dem Factory Method-Muster zu begegnen
  • Eine andere Perspektive: parallele Klassenhierarchien
  • Die Definition des Factory Method-Musters
  • Eine sehr abhängige Pizzeria
  • Ein Blick auf Objekt-Abhängigkeiten
  • Das Prinzip der Umkehrung der Abhängigkeiten
  • Das Prinzip anwenden
  • Stellen Sie Ihr Denken auf den Kopf
  • Ein paar Richtlinien, die Ihnen bei der Befolgung des Musters helfen
  • Inzwischen in der Pizzeria
  • Zutatenfamilien
  • Die Zutatenfabriken aufbauen
  • Die Berliner Zutatenfabrik aufbauen
  • Die Pizza überarbeiten
  • Rückkehr zur Pizzeria
  • Was wir gemacht haben
  • Mehr Pizza für Ben und Tassilo
  • Die Definition des Abstract Factory-Musters
  • Factory Method und Abstract Factory im Vergleich
  • Werkzeuge für Ihren Design-Werkzeugkasten
  • 5 Das Singleton-Muster
  • Das kleine Singleton
  • Die klassische Implementierung des Singleton-Musters sezieren
  • Die Schokoladenfabrik
  • Definition des Singleton-Musters
  • Houston, wir haben ein Problem ...
  • Spielen Sie JVM
  • Mit Multithreading klarkommen
  • Können wir das Multithreading verbessern?
  • Inzwischen in der Schokoladenfabrik ...
  • Werkzeuge für Ihren Design-Werkzeugkasten
  • 6 Das Command-Muster
  • Kostenlose Hardware! Sehen wir uns mal diese Fernsteuerung an
  • Werfen wir einen Blick auf die Klassen der Hersteller
  • Bürogespräche
  • Inzwischen im Restaurant
  • Sehen wir uns das Zusammenspiel etwas gründlicher an
  • Rollen und Verantwortlichkeiten im Restaurant Objekthausen
  • Vom Restaurant zum Command-Muster
  • Unser erstes Befehl-Objekt
  • Das Befehl-Objekt verwenden
  • Einen einfachen Test erstellen, um die Fernsteuerung zu verwenden
  • Die Definition des Command-Musters
  • Die Definition des Command-Musters: das Klassendiagramm
  • Den Fernsteuerungsplätzen Befehle zuweisen
  • Die Fernbedienung implementieren
  • Die Befehle implementieren
  • Die Fernsteuerung in Gang setzen
  • Zeit, diese Dokumentation zu schreiben
  • Zeit, diesen Rückgängig-Knopf in die Mangel zu nehmen
  • Einen Status verwenden, um Rückgängig zu implementieren
  • Den Ventilator-Befehlen Rückgängig hinzufügen
  • Machen Sie sich bereit, den Ventilator zu testen
  • Den Ventilator testen
  • Jede Fernsteuerung braucht einen Party-Modus!
  • Einen Makro-Befehl verwenden
  • Das Command-Muster erfordert eine Menge an Klassen
  • Die Fernsteuerung mit Lambda-Ausdrücken vereinfachen
  • Weitere Vereinfachungen mit Methodenreferenzen
  • Die Fernsteuerung mit Lambda-Ausdrücken testen
  • Weitere Verwendungen des Command-Musters: Warteschlangen für Befehle
  • Weitere Verwendungen des Command-Musters: Anfragen protokollieren
  • Werkzeuge für Ihren Design-Werkzeugkasten
  • 7 Die Adapter- und Facade-Muster
  • Adapter, wo wir nur hinschauen
  • Objektorientierte Adapter
  • Wenn es quakt wie eine Ente und watschelt wie eine Ente, könnte es ein Truthahn sein, der mit einem Ente-Adapter eingepackt ist.
  • Den Adapter testen
  • Das Adapter-Muster erklärt
  • Die Definition des Adapter-Musters
  • Objekt- und Klassen-Adapter
  • Adapter aus dem wirklichen Leben
  • Einen Enumerator an einen Iterator anpassen
  • Und jetzt zu etwas anderem
  • Gemütliches Heimkino
  • Einen Film anschauen (auf die harte Tour)
  • Beleuchtung, Kamera, Fassade
  • Die Heimkino-Fassade aufbauen
  • Die vereinfachte Schnittstelle implementieren
  • Einen Film anschauen (auf die sanfte Tour)
  • Die Definition des Facade-Musters
  • Das Prinzip der Verschwiegenheit
  • Wie man sich KEINE Freunde macht
  • Das Facade-Muster und das Prinzip der Verschwiegenheit
  • Werkzeuge für Ihren Design-Werkzeugkasten
  • 8 Das Template Method-Muster
  • Zeit für noch etwas Koffein
  • Ein paar Kaffee- und Tee-Klassen (in Java) zusammenrühren
  • Dürfte ich vielleicht Ihren Kaffee, Tee abstrahieren?
  • Den Entwurf weiterentwickeln
  • zubereitungsRezept() abstrahieren
  • Was also haben wir gemacht?
  • Dürfen wir vorstellen: das Template Method-Muster!
  • Kochen wir doch mal etwas Tee ...
  • Was hat uns das Template Method-Muster gebracht?
  • Die Definition des Template Method-Musters
  • Haken wir uns bei einer Template-Methode ein ...
  • Den Hook verwenden
  • Führen wir den Testlauf aus
  • Das Hollywood-Prinzip
  • Das Hollywood-Prinzip und das Template Method-Muster
  • Template-Methoden im wirklichen Leben
  • Mit dem Template Method-Muster sortieren
  • Wir haben ein paar Enten, die sortiert werden müssen
  • Was ist compareTo()?
  • Enten mit Enten vergleichen
  • Sortieren wir also ein paar Enten
  • Der Aufbau einer Enten-Sortiermaschine
  • Swinging mit Frames
  • Applets
  • Werkzeuge für Ihren Design-Werkzeugkasten
  • 9 Die Iterator- und Composite-Muster
  • Nachricht des Tages: Restaurant Objekthausen und Pfannkuchenhaus Objekthausen fusionieren
  • Sehen wir uns die Speisen an
  • Jupps und Wims Speisekarten-Implementierungen
  • Was ist das Problem, wenn man zwei ­verschiedene Speisekarten-Formen hat?
  • Was jetzt?
  • Können wir die Iteration kapseln?
  • Darf ich vorstellen: das Iterator-Muster
  • Der RestaurantSpeisekarte einen Iterator hinzufügen
  • Die Restaurant-Speisekarte mit dem Iterator überarbeiten
  • Den Kellnerin-Code aufmöbeln
  • Unseren Code testen
  • Was wir gemacht haben
  • Was wir bisher haben ...
  • Mit java.util.Iterator sauber machen
  • Wir haben es fast geschafft ...
  • Was bringt uns das?
  • Die Definition des Iterator-Musters
  • Eine einzige Verantwortlichkeit
  • Werfen wir einen Blick auf die Speisekarte des Cafés
  • Den Code der Café-Speisekarte umarbeiten
  • Der Kellnerin die Café-Speisekarte hinzufügen
  • Frühstück, Mittagessen und Abendessen
  • Was wir gemacht haben?
  • Wir haben die Kellnerin entkoppelt ...
  • ... und haben die Kellnerin besser erweiterbar gemacht
  • Aber da ist noch mehr!
  • Iteratoren und Collections
  • Ist die Kellnerin bereit für den Ansturm der Gäste?
  • Und gerade als wir dachten, alles wäre in trockenen Tüchern …
  • Was brauchen wir?
  • Die Definition des Composite-Musters
  • Mit dem Composite-Muster Speisekarten entwerfen
  • Die SpeisekartenKomponente implementieren
  • Die Speisen implementieren
  • Die Komposita-Speisekarte implementieren
  • Machen Sie sich für eine Testfahrt bereit
  • Und jetzt der Testlauf!
  • Machen Sie sich für die Testfahrt bereit
  • Ein Rückblick auf Iterator
  • Der KompositumIterator
  • Der Null-Iterator
  • Was gibt es für vegetarische Speisen?
  • Die Magie von Iteratoren und Komposita zusammen
  • Werkzeuge für Ihren Design-Werkzeugkasten
  • 10 Das State-Muster
  • Java bringt die Kugel ins Rollen
  • Gespräch am Arbeitsplatz
  • Einführungskurs »Zustandsautomaten«
  • Den Code schreiben
  • Interner Testlauf
  • Das musste ja kommen ... eine Änderungsanfrage!
  • ZUSTÄNDE wie bei Hempels unterm Sofa ...
  • Der neue Entwurf
  • Definition des Zustands-Interface und der Zustandsklassen
  • Implementierung unserer Zustandsklassen
  • Umbau des Kaugummiautomaten
  • Die Implementierung weiterer Zustände
  • Sehen wir uns mal an, was wir bis jetzt gemacht haben ...
  • Die Definition des State-Musters
  • Unser 1-von-10-Kaugummispiel ist noch nicht fertig
  • Wir machen das Spiel fertig
  • Demo für den Hauptgeschäftsführer von Kaukugel & Co. KG
  • Stimmt alles?
  • Das hätten wir beinahe vergessen!
  • Werkzeuge für Ihren Design-Werkzeugkasten
  • 11 Das Proxy-Muster
  • Der Überwachungscode
  • Wir testen die Überwachung
  • Die Rolle des »Remote-Proxy«
  • Ein Remote-Proxy für unsere ­Kaugummiüberwachung
  • Einführungskurs »Remote-Methoden«
  • Java RMI – das große Ganze
  • Wie gelangt der Client an das Stub-Objekt?
  • Zurück zu unserem Remote-Proxy für den Kaugummiautomaten
  • Vorbereitung des Kaugummiautomaten auf seinen Einsatz als Remote-Service
  • Anmeldung bei der RMI-Registrierung ...
  • Und jetzt zum KaugummiÜberwachung-Client ...
  • Den Testlauf für die Überwachung schreiben
  • Wieder mal eine Vorführung für den Geschäftsführer von Kaukugel ...
  • Die Definition des Proxy-Musters
  • Der virtuelle Proxy
  • Eine Anzeige für CD-Cover
  • Entwurf des virtuellen Proxy für das CD-Cover
  • Wie ImageProxy arbeitet:
  • Programmierung des Image-Proxy
  • Test des CD-Cover-Viewers
  • Zum Ausprobieren
  • Was haben wir gemacht?
  • Kamingespräche
  • Die Erstellung eines Schutz-Proxy mit dem Proxy aus der Java-API
  • Partnervermittlung in Objekthausen
  • Die PersonBean-Implementierung
  • Kurzdrama: Objektschutz
  • Das große Ganze: Erzeugung eines ­dynamischen Proxy für die PersonBean
  • Schritt 1: Erstellen der InvocationHandler
  • Erstellen der InvocationHandler (Fortsetzung)
  • Schritt 2: Erzeugen der Proxy-Klasse und Instantiieren des Proxy-Objekts
  • Test der Partnervermittlung
  • Ausführen des Codes ...
  • Der Proxy-Zoo
  • Werkzeuge für Ihren Design-Werkzeugkasten
  • Der Code für den CD-Cover-Viewer
  • Der Code für den CD-Cover-Viewer, Fortsetzung ...
  • Der Code für den CD-Cover-Viewer, Fortsetzung ...
  • Der Code für den CD-Cover-Viewer, Fortsetzung ...
  • 12 Zusammengesetzte Muster
  • Mustergültige Zusammenarbeit
  • Ein Wiedersehen mit den Enten
  • Was wir gemacht haben …
  • Aus der VogelEntenperspektive: das Klassendiagramm
  • Der König der zusammengesetzten Muster
  • Wir stellen vor: Model-View-Controller
  • Genauer hingesehen ...
  • MVC, durch die Musterbrille betrachtet
  • Mit MVC den Takt angeben ...
  • Der Java-DJ-View
  • Der Controller sitzt in der Mitte ...
  • Vergessen wir nicht das Model ganz untendrunter ...
  • Zusammenbau der Einzelteile
  • Erstellung der Einzelteile
  • Sehen wir uns jetzt die konkrete Klasse BeatModel an:
  • Implementierung des Views
  • Implementierung des Views (Fortsetzung)
  • Nun zum Controller
  • Implementierung des Controllers
  • Alles zusammensetzen
  • Und jetzt ein Testlauf ...
  • Zum Ausprobieren:
  • Strategy intensiv
  • Anpassung des Models
  • Jetzt sind wir bereit für einen HerzController
  • Das war's! Jetzt brauchen wir noch Testcode ...
  • Und jetzt ein Testlauf ...
  • MVC und das Web
  • Model 2: DJ am Handy
  • Das Einrichten Ihrer Servlet-Umgebung
  • Schritt 1: das Model
  • Schritt 2: das Controller-Servlet
  • Jetzt brauchen wir einen View ...
  • Model 2 im Test ...
  • Zum Ausprobieren:
  • Muster und Model 2
  • Werkzeuge für Ihren Design-Werkzeugkasten
  • 13 Besser leben mit Mustern
  • Der Objekthausener Leitfaden für ein besseres Leben mit Mustern
  • Definition eines Entwurfsmusters
  • Die Entwurfsmusterdefinition näher betrachtet
  • Möge die Macht mit Ihnen sein!
  • So, Sie möchten also selbst Entwurfsmuster schreiben?
  • Ordnung in Entwurfsmuster bringen
  • Musterkategorien
  • In Mustern denken
  • Ihr Denken wird mustergültig
  • Vergessen Sie nicht die Macht des gemeinsamen Vokabulars
  • Eine Fahrt durch Objekthausen mit der Gang of Four
  • Ihre Reise hat gerade erst begonnen ...
  • Der Musterzoo
  • Mit Antimustern gegen die Schlechtigkeit
  • Werkzeuge für Ihren Design-Werkzeugkasten
  • Abschied von Objekthausen ...
  • 14 Anhang: Übrig gebliebene Muster
  • Bridge-Muster
  • Verwendung des Bridge-Musters
  • Builder-Muster
  • Verwendung des Builder-Musters
  • Chain of Responsibility-Muster
  • Verwendung des Chain of Responsibility-Musters
  • Flyweight-Muster
  • Verwendung des Flyweight-Musters
  • Interpreter-Muster
  • Implementierung eines Interpreters
  • Mediator-Muster
  • Mediator in Action ...
  • Memento-Muster
  • Memento bei der Arbeit
  • Prototype-Muster
  • Prototype kommt zu Hilfe
  • Visitor-Muster
  • Der Visitor kommt vorbei
  • Index

Ähnliche Titel

    Mehr von diesem Autor