WISSENSARTIKEL / PROGRAMMIERUNG & ENTWICKLUNG

Command Pattern

Ein Entwurfsmuster zur Kapselung von Befehlen als Objekte

◎ KURZDEFINITION

Command Pattern Das Command Pattern ist ein Entwurfsmuster, das eine Anfrage oder Operation in ein eigenständiges Objekt kapselt, sodass sie parametrisiert, gespeichert und rückgängig gemacht werden kann.

Eigenständig verständliche Definition
ANSWER ENGINE · WISSENSNETZ

Wie hängt Command Pattern mit anderen Begriffen zusammen?

Entdecke Voraussetzungen, verwandte Konzepte und weiterführende Themen. Jeder Knoten führt dich direkt zum passenden Wissensartikel.

12verbundene
Begriffe
Aktueller Begriff Verwandter ArtikelKnoten anklicken · Zoom über + / −
BEGRIFFE VERKNÜPFT
✦Command PatternHier bist du
↔Observer PatternObserver Pattern
↔EntwurfsmusterEntwurfsmuster
↔SoftwarearchitekturSoftwarearchitektur
↔Rsa VerschluesselungGleiches Wissensgebiet
↔Call By ValueGleiches Wissensgebiet
↔Lazy EvaluationGleiches Wissensgebiet
↔Framework Class LibraryGleiches Wissensgebiet
↔ShellGleiches Wissensgebiet
↔ProgrammabsturzGleiches Wissensgebiet
↔PnpmGleiches Wissensgebiet
↔Asp NetGleiches Wissensgebiet
Wissensnetz aus veröffentlichten Artikeln · Verbindungen können verschoben werden
✦

Das Wichtigste auf einen Blick

  • Das Command Pattern kapselt Befehle als Objekte, um Entkopplung zu erreichen.
  • Es ermöglicht das Speichern, Wiederholen und Rückgängigmachen von Aktionen.
  • Das Muster unterstützt die Parametrisierung von Befehlen und flexible Steuerung.
  • Typische Komponenten sind Command, ConcreteCommand, Invoker und Receiver.
  • Es fördert die Erweiterbarkeit und Wartbarkeit von Software.
  • Das Muster wird häufig in GUI-Frameworks, Undo-Mechanismen und Task-Queues eingesetzt.
01

Überblick: Command Pattern

Das Command Pattern gehört zu den Verhaltensmustern in der Softwareentwicklung und dient dazu, Befehle oder Aktionen als eigenständige Objekte zu behandeln. Dadurch wird die Entkopplung zwischen dem Aufrufer eines Befehls und dem Empfänger der Aktion erreicht. Das Muster ermöglicht es, Befehle zu parametrisieren, in Warteschlangen zu speichern, Protokolle zu führen oder rückgängig zu machen. Es findet breite Anwendung in der Gestaltung flexibler und erweiterbarer Systeme.

02

Definition des Command Patterns

Das Command Pattern definiert ein Objekt, das eine Aktion oder einen Befehl kapselt. Dieses Objekt enthält alle Informationen, die zur Ausführung der Aktion notwendig sind, wie z.B. den Empfänger der Aktion und die auszuführende Methode. Dadurch kann der Befehl unabhängig vom Aufrufer ausgeführt, gespeichert oder rückgängig gemacht werden.

03

Hauptkomponenten des Command Patterns

Das Muster besteht aus mehreren zentralen Komponenten: Command (Interface oder abstrakte Klasse), ConcreteCommand (konkrete Implementierung des Befehls), Receiver (Empfänger, der die Aktion ausführt) und Invoker (Aufrufer, der den Befehl auslöst).

04

Komponenten des Command Patterns

KomponenteBeschreibungBeispiel
CommandDefiniert die Schnittstelle für Befehleexecute() Methode
ConcreteCommandImplementiert den Befehl und ruft Receiver-Methoden aufLightOnCommand
ReceiverFührt die eigentliche Aktion ausLicht einschalten
InvokerStartet die Ausführung des BefehlsFernbedienung
05

Anwendungsbeispiele

Das Command Pattern wird häufig in grafischen Benutzeroberflächen eingesetzt, um Benutzeraktionen zu kapseln, z.B. bei Buttons oder Menüs. Ebenso findet es Anwendung bei Undo/Redo-Funktionalitäten, Task-Scheduling oder in verteilten Systemen zur Befehlsübertragung.

06

Vor- und Nachteile des Command Patterns

VorteileNachteile
Entkopplung von Sender und EmpfängerErhöhter Implementierungsaufwand durch viele Klassen
Unterstützung von Undo/Redo und LoggingKomplexität bei sehr einfachen Anwendungen
Ermöglicht flexible BefehlsverwaltungKann zu Performance-Overhead führen
07

Implementierungsschritte des Command Patterns

Die Umsetzung erfolgt in mehreren Schritten: 1. Definieren der Command-Schnittstelle, 2. Implementieren der konkreten Befehle, 3. Erstellen des Receivers mit der eigentlichen Logik, 4. Implementieren des Invokers, der Befehle ausführt, 5. Verknüpfen von Invoker und Commands zur Laufzeit.

08

Wichtig zu beachten

✦

Das Command Pattern erhöht die Flexibilität und Erweiterbarkeit, kann aber die Anzahl der Klassen im Projekt deutlich erhöhen. Es eignet sich besonders für komplexe Systeme mit vielen unterschiedlichen Befehlen und Anforderungen an Undo/Redo.

09

Verwandte Entwurfsmuster

Das Command Pattern steht in Beziehung zu anderen Verhaltensmustern wie dem Memento Pattern (für Undo/Redo), dem Observer Pattern (für Benachrichtigungen) und dem Strategy Pattern (für austauschbare Algorithmen).

◇

Zusatzinformationen

◇

Begriff: Command Pattern

Kategorie: Entwurfsmuster / Softwareentwicklung

Typ: Verhaltensmuster

Zweck: Kapselung von Befehlen als Objekte zur Entkopplung und flexiblen Steuerung

Hauptkomponenten: Command, ConcreteCommand, Invoker, Receiver

Anwendungsgebiete: GUI-Steuerung, Undo/Redo-Funktionalität, Task-Management

Vorteile: Erhöhte Flexibilität, bessere Wartbarkeit, Unterstützung von Undo/Redo

Nachteile: Erhöhter Implementierungsaufwand, mehr Klassen

Aa

Synonyme und alternative Bezeichnungen

?

Häufige Fragen zu Command Pattern

Was ist das Ziel des Command Patterns?

Das Ziel ist die Kapselung von Befehlen als Objekte, um Entkopplung zwischen Sender und Empfänger zu erreichen und flexible Steuerung von Aktionen zu ermöglichen.

Welche Vorteile bietet das Command Pattern?

Es ermöglicht Undo/Redo-Funktionalität, Logging, flexible Parametrisierung und Entkopplung, was die Wartbarkeit und Erweiterbarkeit von Software verbessert.

Wann sollte man das Command Pattern einsetzen?

Wenn Befehle parametrisiert, gespeichert, rückgängig gemacht oder verzögert ausgeführt werden sollen, z.B. in GUI-Anwendungen oder Task-Management-Systemen.

Welche Hauptkomponenten hat das Command Pattern?

Command (Schnittstelle), ConcreteCommand (konkrete Befehle), Receiver (Empfänger der Aktion) und Invoker (Aufrufer).

Kann das Command Pattern die Anzahl der Klassen erhöhen?

Ja, da für jeden Befehl eine eigene Klasse erstellt wird, was die Komplexität und den Implementierungsaufwand erhöhen kann.

Wie unterstützt das Command Pattern Undo/Redo-Funktionalität?

Indem Befehle als Objekte gespeichert und bei Bedarf rückgängig gemacht oder erneut ausgeführt werden können.

Gibt es Alternativen zum Command Pattern?

Je nach Anwendungsfall können andere Muster wie Strategy oder Observer verwendet werden, jedoch bietet das Command Pattern spezifische Vorteile bei der Befehlsverwaltung.

▤

Quellen & weiterführende Informationen

Quellenvorschläge und Nachweise zum Artikel. Bitte externe Inhalte eigenständig prüfen.

3 Quellen
  1. 01
    Design Patterns: Elements of Reusable Object-Oriented Software ↗
    Addison-Wesley· Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides· BuchKI-Vorschlag · ungeprüft

    Grundlegende Beschreibung und Definition des Command Patterns.

    https://en.wikipedia.org/wiki/Command_pattern
  2. 02
    Command Pattern – GeeksforGeeks ↗
    GeeksforGeeks· GeeksforGeeks Contributors· Online-ArtikelKI-Vorschlag · ungeprüft

    Praktische Beispiele und Erläuterungen zum Command Pattern.

    https://www.geeksforgeeks.org/command-pattern/
  3. 03
    Refactoring Guru: Command Pattern ↗
    Refactoring Guru· Alexander Shvets· Online-ArtikelKI-Vorschlag · ungeprüft

    Ausführliche Erklärung mit UML-Diagrammen und Anwendungsfällen.

    https://refactoring.guru/de/design-patterns/command

Artikel teilen oder einbetten

Teile diesen Wissensartikel oder binde eine kompakte Vorschau auf deiner eigenen Website ein.

f Facebookin LinkedIn𝕏 X◉ WhatsApp
Wie bewertest du diesen Artikel?Deine Sterne helfen anderen Lesern und verbessern unsere Inhalte.
– / 5(0 Bewertungen)
Bewerte mit 1 bis 5 Sternen
DEIN FEEDBACKWar dieser Artikel hilfreich?Deine Rückmeldung hilft uns, die Inhalte noch besser zu machen.
STIMMEN DER LESERFeedback zu diesem Artikel
0 Stimmen
👍 Ja, sehr
00 %
◐ Teilweise
00 %
👎 Nicht wirklich
00 %

Die Balken aktualisieren sich automatisch anhand der abgegebenen Rückmeldungen.

ANSWER ENGINE · COMMUNITY

Diskussion zum Artikel

Teile deine Gedanken, stelle Rückfragen oder antworte anderen Lesern – respektvoll und direkt am Thema.

0 Kommentare
Deine E-Mail-Adresse wird nicht öffentlich angezeigt.
0 / 2.000
Kommentare & AntwortenNeueste Diskussion
Kommentare werden geladen …
ANSWER ENGINE · ARTIKEL

Diese Seite in Zahlen

Artikelstatistik
↗–Aufrufe dieses Artikels
◷–Unique Nutzer letzte 24 Stunden
◉–Unique Nutzer heute
▦–Unique Nutzer diesen Monat

Alle Werte in diesem Abschnitt beziehen sich ausschließlich auf diesen Artikel.

LETZTE 30 TAGE

Entwicklung dieses Artikels

Tagesverlauf

Hinweis: Seitenaufrufe werden erst ab Aktivierung der täglichen Statistik historisch pro Tag erfasst. Unique Nutzer sind Tageswerte; dieselbe Person kann an mehreren Tagen vorkommen und darf deshalb nicht zu einer Monatszahl addiert werden.

SeitenaufrufeUnique Nutzer
Seitenaufrufe vs. vorherige 30 TageWird geladen …
Unique Nutzer vs. vorherige 30 TageWird geladen …
ANSWER ENGINE · GESAMTES NETZWERK

Wissensplattform in Zahlen

Netzwerkstatistik
↗–Seitenaufrufe gesamt
◷–Unique Nutzer letzte 24 Stunden
◉–Unique Nutzer heute
▦–Unique Nutzer diesen Monat

Diese Werte beziehen sich auf die gesamte Plattform und alle veröffentlichten Artikel.

LETZTE 30 TAGE

Entwicklung des gesamten Netzwerks

Tagesverlauf

Hinweis: Seitenaufrufe werden erst ab Aktivierung der täglichen Statistik historisch pro Tag erfasst. Unique Nutzer sind Tageswerte; dieselbe Person kann an mehreren Tagen vorkommen und darf deshalb nicht zu einer Monatszahl addiert werden.

SeitenaufrufeUnique Nutzer
Seitenaufrufe vs. vorherige 30 TageWird geladen …
Unique Nutzer vs. vorherige 30 TageWird geladen …