Diskussion:Entwurfsmuster/Kurzbeschreibung
Zur Navigation springen
Zur Suche springen
Aus dem Artikel hierher ausgelagert:
Domänenlogik
[Quelltext bearbeiten]- Transaction Script
- organisiert die Geschäftslogikschicht nach Prozeduren, wobei jede Prozedur eine einzelne Anfrage der Präsentationsschicht bearbeitet.<ref name="PoEAA" />
- Domain Model
- stellt ein Objektmodell für die Domäne bereit, welches sowohl Verhalten als auch Daten beinhaltet.
- Table Module
- eine einzelne Instanz, welche die Geschäftslogik für alle Reihen in einer Datenbanktabelle oder Tabellenansicht enthält.<ref name="PoEAA" />
- Service Layer
- stellt eine Anwendungsgrenze dar, welche eine Menge von verfügbaren Operationen bereitstellt und die Antwort der Anwendung für jede Operation koordiniert.<ref name="PoEAA" />
-
Transaction Script
-
Domain Model
-
Table Module
-
Service Layer
Objekt-Relationale Verhaltensmuster
[Quelltext bearbeiten]- Unit of Work
- verwaltet eine Liste von Objekten mittels einer Business-Transaktion. Sie koordiniert das Schreiben in die Datenbank, sowie die Auflösung von Nebenläufigkeits-Problemen.<ref name="PoEAA" />
- Identity Map
- stellt sicher, dass jedes Objekt nur einmal geladen wird, indem jedes Objekt in einer Karte (englisch: Map), meist ein assoziatives Datenfeld, gehalten wird.<ref name="PoEAA" />
- Lazy Load
- stellt ein Objekt bereit, welches zwar nicht alle Daten geladen hat, jedoch Methoden besitzt um die Daten bei Bedarf nachzuladen.<ref name="PoEAA" />
-
Sequenzdiagramm von Lazy Load
-
Unit of Work
-
Sequenzdiagramm einer Identity Map
Objekt-Relationale Strukturmuster
[Quelltext bearbeiten]Die Abbildung objektorientierter Strukturen in relationalen Datenbanken kann auf unterschiedliche Art und Weise erfolgen. Dabei gilt es Objektbeziehungen und Vererbung in Relationen umzuwandeln.
Folgende Muster werden von Martin Fowler in Patterns of Enterprise Application Architecture erwähnt:
- Identity Field
- Ein Identity Field speichert ein Datenbank-ID-Feld in einem Objekt um die Zuordnung vom Objekt zu der zugehörigen Datenbankzeile zu gewährleisten.<ref name="PoEAA" />
- Dependent Mapping
- hat eine Klasse, welche die Datenbank-Abbildung für die Unterklasse übernimmt.<ref name="PoEAA" />
- Embedded Value
- bildet ein Objekt in mehreren Feldern der Tabelle eines anderen Objekts ab.<ref name="PoEAA" />
- Serialized LOB
- speichert einen Graphen von Objekten durch Serialisierung als LOB in einem in einem einzelnen Datenbankfeld.<ref name="PoEAA" />
- Inheritance Mapper
- eine Struktur um Datenbank-Mapper zu organisieren, welche die Vererbungshierarchien behandeln.
-
Identity Field
-
Dependent Mapping
-
Embedded Value
-
Serialized LOB
-
Inheritance Mapper
siehe auch: Relationale-Datenbank-Muster, Entwurfsmuster
Objekt-Relationales Metadaten-Mapping
[Quelltext bearbeiten]- Metadata Mapping
- hält Details des Objekt-Relationalen Mappings in Metadaten.
- Query Object
- ist ein Objekt, welches eine Datenbankabfrage repräsentiert.
-
Metadata Mapping
-
Query Object
Web-Darstellung
[Quelltext bearbeiten]- Page Controller
- ist ein Objekt, dass die Anfragen zu einer bestimmten Seite oder Aktion auf einer Webseite behandelt.
- Template View
- rendert Informationen mit Hilfe von eingebetteten Auszeichnungen in eine HTML-Vorlage.
- Transform View
- verarbeitet die Daten der Domäne Datenelement-für-Datenelement und transformiert diese in HTML.
- Two-Step View
- transformiert die Domänendaten in zwei Schritten nach HTML:
- Transformation in eine Logikseite (z. B. XML, JSON)
- Rendern der Logikseite nach HTML (z. B. mit XSLT, JavaScript)
- Application Controller
- ist ein zentralisierter Punkt zur Behandlung der Ansichten-Navigation und des Anwendungsflusses.
-
Page Controller
-
Template View
-
Transform View
-
Two-Step View
-
Application Controller
Verteilung
[Quelltext bearbeiten]- Remote Facade
- stellt eine grobkörnige Fassade auf feinkörnigen Objekten bereit um die Effizienz beim Transport der Daten über das Netzwerk zu verbessern.
- Datentransferobjekt
- (englisch: Data Transfer Object, DTO) ist ein Objekt, welches Daten zwischen Prozessen transportiert um die Anzahl der Methodenaufrufe zu reduzieren.
-
Remote Facade
-
Transferobjekt
Offline Concurrency
[Quelltext bearbeiten]- Optimistic Offline Lock
- verhindert Konflikte zwischen konkurrierenden Transaktionen durch feststellen eines Konflikts und zurücksetzen (roll-back) der Transaktion.
- Pessimistic Offline Lock
- verhindert Konflikte zwischen konkurrierenden Transaktionen indem nur eine Transaktion die auf Daten zugreift zu einer bestimmten Zeit zugelassen wird.
- Coarse Grained Lock
- sperrt eine Menge von zusammengehörigen Objekten mit einem einzelnen Lock.
-
Optimistic Offline Lock
-
Pessimistic Offline Lock
-
Coarse-Grained Lock
-
Implicit Lock
Sitzungsstatus
[Quelltext bearbeiten]- Client Session State
- speichert den Status der Sitzung am Klienten.
- Server Session State
- hält den Status der Sitzung am Server in einer serialisierten Form.
- Database Session State
- speichert die Sitzungsdaten in der Datenbank.
Basismuster
[Quelltext bearbeiten]- Gateway
- ein Objekt, welches den Zugriff zu einem externen System oder einer externen Ressource kapselt.
- Mapper
- ein Objekt, welches die Kommunikation zwischen zwei unabhängigen Objekten herstellt.
- Layer Supertype
- ein Typ welcher als Supertyp für alle anderen Typen im Layer arbeitet.
- Separated Interface
- definiert ein Interface in einem von der Implementierung getrennten Paket
- Repository oder Registry
- ein bekanntes Objekt, welches andere Objekte verwenden können um gemeinsame Objekte und Services zu finden.
- Value Object
- ein einfaches Objekt, dessen Gleichheit ist nicht auf Identität basiert.
- Special Case
- eine Unterklasse die ein spezielles Verhalten für bestimmte Fälle bereitstellen.
- Plugin
- verlinkt Klassen während der Konfiguration anstatt während der Kompilierung.
- Service Stub
- löst die Abhängigkeit von problematischen Webservices während des Testens.
- Record Set
- ist eine Repräsentation von Tabellendaten im Arbeitsspeicher.
-
Gateway
-
Mapper
-
Layer Supertype
-
Separated Interface
-
Registry
-
Special Case
-
Plugin
-
ein Caller-Objekt erhält ein Plugin über ein getrenntes Interface
-
Service Stub
-
Record Set
Objekt-Relationale Strukturmuster
[Quelltext bearbeiten]- Identity Field
- Ein Identity Field speichert ein Datenbank-ID-Feld in einem Objekt um die Zuordnung vom Objekt zu der zugehörigen Datenbankzeile zu gewährleisten.<ref name="PoEAA" />
- Foreign-Key-Mapping
- Das Foreign-Key-Mapping bildet eine Assoziation zwischen Objekten als eine Fremdschlüsselreferenz zwischen Tabellen ab.<ref name="PoEAA" />
- Association-Table-Mapping
- Association-Table-Mapping bildet eine n:m-Relation mit Hilfe einer Assoziationstabelle ab.<ref name="PoEAA" />
-
Identity Field
-
Foreign-Key-Mapping auf skalares Feld (n:1-Mapping)
-
Foreign-Key-Mapping auf Container-Feld (1:n-Mapping)
-
Association-Table-Mapping
siehe auch: Relationale-Datenbank-Muster, Architekturmuster