コマンドクエリ分離では、すべてのメソッドがアクションを実行するコマンドか、または呼び出し元にデータを返すクエリであることをお勧めします。Stringクラスの `replace()`メソッドがCommand-Query Separationに違反していますか?
しかし、たとえばStringクラスのreplaceメソッドはどうでしょうか。
署名は次のとおりです。String replace(String str);
これはCQSに違反していますか?
違反していることを認めれば、コマンドであるreplace()が最新のStringを呼び出し側に通知できるように修正する方法はわかりません。実際、CQSによるコマンドは戻り値の型として空白を持っていなければなりません。
質問がありますか、まさに観測していますか? http://stackoverflow.com/faq#dontask –
を参照してください。JavaはリモートでCQSに従うと誰が言いますか?どちらの場合でも、 'replace'は呼び出されている文字列を変更しません。 –