generated at
CommandとQueryの分離
Command
状態を変更する。値を返さない。
Query
状態を変更しない(副作用がない)。値を返す

1つのメソッドの中で、なにか副作用を起こす処理を行いつつ、返り値で何かを返してそれを今後の処理に使うことを期待するのは、2つの責務を持っている

そういったメソッドは、
副作用を起こす処理
結果を算出して返す処理
の2つのメソッドに分離できれば、単体テストもしやすくなる。

C#
// 副作用があるコマンドメソッド public void CommandMethod(obj nanika){ nanika.body += 1; } // 結果を返すだけのクエリメソッド public int QueryMethod(){ return nanika.body; }