Home » Java Advanced » Java Design Patterns

Java Design Patterns

Siehe auch: Java Design Principles 

Ein wunderbarer Kurs: Design Patterns in Java: The Big Picture by Esteban Herrera

Contents

Design Pattern Types

Unterscheidung 1: Structural | Behavioral | Creational
Unterscheidung 2: Class | Object centric

Wichtigste Design Patterns

Creational

Abstract Factory

Factory Method

Gemäss Herrera: Gleich wie ‚Abstract Factory‘ aber links und Creator und Produkt haben nur eine Hierarchie.
Gemäss Steinhauser: Eine getFactory() Methode erzeugt die Factory anhand eines Discriminators.

Builder

Singleton Pattern

Sinn: Es soll in der Laufzeitumgebung nur genau ein Objekt einer bestimmten Klasse geben.
Vorgehen: Einzigen parameterlosen Konstruktor der Klasse auf private setzen. Statisches Feld ‚instance‘, das die eine Instanz aufnimmt. Eine statische getInstance Methode wird benutzt um 1., falls ‚instance‘ noch NULL ist die Klasse zu instqanzieren und ‚instance‘ zu setzen und 2. die Instanz zu retournieren.

Behavioural

Strategy

State

Command

Observer Pattern

Template Method Pattern

Eine Basisklasse enthälte eine Methode (Bsp. processDocument()), die sowohl Verarbeitungsschritte enthält, die für alle Spezialfälle gleich sind (Bsp. backup(), validate()), aber auch solche, die je nach Fall differenziert werden sollen (Bsp. process()). Die zu differenzierenden Schritte werden in der Basisklasse als abstrakte Methoden ausgelagert und in spezifischen Subklassen konkretisiert.

Spezialfall:
Hooks: Wie Template Pattern, aber methoden sind nicht abstrakt und müssen deshalb nicht überschriben werden (default).

Visitor

Beschreibung fehlt noch!

Iterator

Beschreibung fehlt noch!

Structural

Facade Pattern

Zweck: Einen Orchestrator haben, der weiss wo was zu holen und wie zu verarbeiten ist. ==> Wie eine Main Methode.

Decorator Pattern

Um eine Pizza mit verschiedenen Zutaten zu dekorieren:

Das bedingt, dass die Decorators eine Instanz des Decoree halten und eine gemeinsame Methode (=>Interface) implementieren:

Proxy Pattern

(Object) Adapter Pattern

Zweck: Koppelung von Services ohne direkt von ihren Interfaces abhängig zu sein.

Composite

Bridge


Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert