Top-Fragen
Zeitleiste
Chat
Kontext
Command-Query-Separation
Aus Wikipedia, der freien Enzyklopädie
Remove ads
Command-Query-Separation (CQS,[1] englisch für etwa Kommando-Abfrage-Trennung) ist ein Prinzip des Softwareentwurfs. Das CQS-Prinzip wurde von Bertrand Meyer im Zuge seiner Arbeit an der Programmiersprache Eiffel erdacht.
Das CQS-Prinzip besagt, dass eine Methode entweder als Abfrage (query) oder als Kommando (command, modifier oder mutator) implementiert werden soll. Eine Abfrage muss hierbei Daten zurückliefern und darf keine Seiteneffekte auf dem beobachtbaren Zustand des Systems aufweisen, während ein Kommando beobachtbare Seiteneffekte aufweist und keine Daten zurückliefert.
“Functions should not produce abstract side effects … only commands (procedures) will be permitted to produce side effects.”
„Funktionen sollten keine Seiteneffekte haben … nur Kommandos (Prozeduren) dürfen Seiteneffekte haben.“
Das Prinzip verbietet nur abstrakte Seiteneffekte für Abfragen. Bertrand Meyer unterscheidet davon zwei Arten harmloser Seiteneffekte, die oft sogar für Abfragen notwendig sind:
- Seiteneffekte, die am Ende der Abfrage wieder zurückgenommen werden.
- Seiteneffekte, die nur den privaten Zustand des Objektes betreffen, also von außen nicht wahrnehmbar sind.
Remove ads
Siehe auch
Einzelnachweise
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads