Aus dem Artikel hierher ausgelagert:

Domänenlogik

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" />

Objekt-Relationale Verhaltensmuster

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" />

Objekt-Relationale Strukturmuster

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.

siehe auch: Relationale-Datenbank-Muster, Entwurfsmuster

Objekt-Relationales Metadaten-Mapping

Bearbeiten
Metadata Mapping
hält Details des Objekt-Relationalen Mappings in Metadaten.
Query Object
ist ein Objekt, welches eine Datenbankabfrage repräsentiert.

Web-Darstellung

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:
  1. Transformation in eine Logikseite (z. B. XML, JSON)
  2. Rendern der Logikseite nach HTML (z. B. mit XSLT, JavaScript)
Application Controller
ist ein zentralisierter Punkt zur Behandlung der Ansichten-Navigation und des Anwendungsflusses.

Verteilung

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.

Offline Concurrency

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.
Implicit Lock
erlaubt einem Framework oder einem Layer Offline-Locks zu erhalten.

Sitzungsstatus

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

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.

Objekt-Relationale Strukturmuster

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" />

siehe auch: Relationale-Datenbank-Muster, Architekturmuster