Skip to content
EntityQ3954590· pop 8· linked from 13 articles

Command-Query-Separation

Sign in to save

principle that every method should either be a command that performs an action, or a query that returns data to the caller, but not both; asking a question should not change the answer

Wikidata facts

Show 1 more fact
discoverer or inventor
Bertrand Meyer

via Wikidata · CC0

Article · Deutsch

Command-Query-Separation (CQS, 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 Nebeneffekte 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.“ – Bertrand Meyer: Object Oriented Software Construction Das Prinzip verbietet nur abstrakte Seiteneffekte für Kommandos. Bertrand Meyer unterscheidet davon zwei Arten harmloser Seiteneffekte, die oft sogar für Kommandos notwendig sind: * Seiteneffekte, die am Ende des Kommandos wieder zurückgenommen werden. * Seiteneffekte, die nur den privaten State des Objektes betreffen, also von außen nicht wahrnehmbar sind.

Abstract from DBpedia / Wikipedia · CC BY-SA

Available in 8 languages

via Wikidata sitelinks · CC0