Quelle: dotnetpro
Verhaltensmuster State 15.02.2021, 00:00 Uhr

Eine Frage des Status

Das Entwurfsmuster State beschreibt mit der Abhängigkeit von Zuständen eine grund­legende Herausforderung der Softwareentwicklung. 
Unter den Entwurfsmustern, die zum Grundkanon jedes Entwicklers gehören sollten, ragen drei besonders he­raus: Strategy, Template und State. Während Strategy und Template Muster darstellen, die vorrangig die grundlegende Erweiterbarkeit einer Funktionalität adressieren, setzt State auf eine Grundstruktur, die in erster Linie an der inneren Ordnung einer Klasse ausgerichtet ist und deren Ziel es ist, durch ein nachvollziehbares Muster die Wartbarkeit zu erhöhen.
Das Prinzip ist einfach. Gibt es in einer Klasse für deren Verhalten viele Fallunterscheidungen in Abhängigkeit von lokalen Variablen, beschreibt das Entwurfsmuster State die Struktur der Aufteilung des Programmcodes. Damit kann der notwendigerweise entstehenden Komplexität entgegengewirkt werden. Die Aufteilung erfolgt in Form einer definierten Schnittstelle oder von abstrakten Klassen, für die es dann je nach Zustand unterschiedliche Implementierungen gibt (Bild 1). Damit reduziert sich zwar nicht die notwendige Differenzierung der Zustände, aber die Struktur des Programmcodes wird übersichtlicher und damit wartbarer. Wesentlich ist, dass die Entscheidung, welches Verhalten in einer Klasse tatsächlich aktiv ist, in der Klasse selbst getroffen wird. Damit unterscheidet es sich vom Entwurfsmuster Strategy, bei dem ein konkretes Verhalten von außen injiziert wird, und von Template, bei dem sich diese Struktur durch Vererbung ergibt.

Jetzt 1 Monat kostenlos testen!

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
  • + Digitales Kundenkonto,
  • + Zugriff auf das digitale Heft,
  • + Zugang zum digitalen Heftarchiv,
  • + Auf Wunsch: Weekly Newsletter,
  • + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar