Verwendung von Common-Domain-Logikstrukturen bei .NET-Anwendungen

Jeder Entwickler, der Software entwickelt und implementiert, wünscht sich, dass alles auf Anhieb funktioniert. Nichts ist frustrierender, als eine Lösung verwerfen oder überarbeiten zu müssen, nachdem man sich für einen bestimmten Weg entschieden und schon richtig viel Zeit investiert hat, weil der gewählte Ansatz nicht an neue Anforderungen angepasst werden kann. Mit den richtigen Strukturen für die Darstellung der Domänenlogik kann der Frust vermieden werden.

Der Code für diese Strukturen und die Terminologie sind dem Buch „Patterns of Enterprise Application Architecture“ von Martin Fowler, Addison-Wesley, 2003, entnommen.

Drei Strukturen

Es gibt viele verschiedene Möglichkeiten zur Organisation der Domänenlogik in Komponenten, die Kalkulationen, Validierungen und andere Logiken enthalten, welche die Kernfunktionalität der Anwendung bestimmen. Fowler definiert drei Architektur-Strukturen – Transaktionsskript, Tabellenmodul und Domänenmodul (im Folgenden nach steigender Komplexität besprochen) –, die von Entwicklern zur Organisation der Domänenlogik verwendet werden.

Transaktionsskript

Diese Struktur umfasst das Erstellen von Methoden in einer oder mehreren Geschäftskomponenten (Klassen), die direkt auf die von der Anwendung benötigte Funktionalität abbilden. Wie der Name schon sagt, ist jede Transaktion wie z. B. die Bearbeitung einer Bestellung in ihr eigenes Skript eingebettet, das sich in einer Methode einer Geschäftskomponente befindet. Der Hauptteil der einzelnen Methoden führt dann die Logik aus, wobei oftmals eine Transaktion zu Beginn gestartet und am Ende abgeschlossen wird (daher der Name).

Diese Struktur kann durch die Verwendung mehrerer Transaktionen pro Komponente implementiert werden. Dies ist das am weitesten verbreitete Verfahren; es erfordert die Faktorierung der Transaktionen in Gruppen einer höheren Stufe, wobei anschließend für jede Gruppe eine Geschäftskomponente sowie für jede Transaktion eine öffentliche oder gemeinsam genutzte Methode erstellt werden muss. Zum Beispiel umfasst der Bestellprozess für ein Produkt bei einer Online-Shop-Anwendung mehrere Schritte und kann in eine PlaceOrder-Methode innerhalb der OrderProcessing-Komponente eingebettet werden (siehe Listing A).

Die zweite Möglichkeit der Implementierung dieser Struktur ist die Separierung jeder einzelnen Transaktion in ihre eigene Komponente. Durch dieses Verfahren wird jedes Transaktionsskript in seiner eigenen Klasse implementiert, die Implementierungs- oder Schnittstellenvererbung verwendet, um Polymorphismus zu ermöglichen (entsprechend der Befehlsstruktur der GoF). So können beispielsweise die Skripts PlaceOrder und SaveCustomer als Klassen implementiert werden, die über die IProcessing-Schnittstelle erben, wie in Abbildung A dargestellt.



Abbildung A: Transaktionsskript

Diese Struktur ist zwar oft die intuitivste, doch ist sie nicht so flexibel wie andere Verfahren und ermöglicht keine Code-Wiederverwendung. Der Vorteil dieses Ansatzes besteht darin, dass er vom Konzept her unkompliziert zu entwickeln ist, indem man sich die Aktionen ansieht, welche die Anwendung durchführen muss. Diese Struktur stellt somit die Anwendung als Abfolge von Transaktionen dar.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Google kündigt neue Sicherheitsfunktionen für Chrome an

Der Sicherheitscheck entzieht unsicheren Websites automatisch alle Berechtigungen. Zudem können Nutzer in Chrome künftig Websites…

7 Stunden ago

Cyberkriminelle nehmen Fertigungsbetriebe ins Visier

Ontinue registriert einen Anstieg beim Anteil am Gesamtangriffsvolumen um 105 Prozent. Das Angriffsvolumen auf den…

8 Stunden ago

o1: OpenAI stellt neues KI-Modell für komplexe Abfragen vor

Das o1 genannte Modell liegt als Preview vor. Bei einer Mathematikprüfung beantwortet es 83 Prozent…

3 Tagen ago

Zoom erhält IT-Sicherheits- kennzeichen des BSI

Das Kennzeichen erhalten Zoom Workplace Pro und Zoom Workplace Basic. Es bescheinigt unter anderem aktuelle…

4 Tagen ago

Google verbessert Tab-Verwaltung in Chrome

iOS und iPadOS erhalten Tab-Gruppen. Zudem unterstützt Chrome nun die Synchronisierung von Tab-Gruppen.

4 Tagen ago

Identitätsdiebstahl: 58 Prozent der Deutschen sorgen sich um digitales Erbe

Sie befürchten einen Missbrauch der Identitäten von Verstorbenen. 60 Prozent befürworten deswegen eine Klärung des…

4 Tagen ago