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 keine Nebeneffekte auf dem beobachtbaren Zustand des Systems aufweisen, während ein Kommando beobachtbare Nebeneffekte aufweist und keine Daten zurückliefert.
Siehe auch
Quellen
- ↑ Martin Fowler: CommandQuerySeparation. 5. Dezember 2005, abgerufen am 18. Mai 2014 (englisch).