Команда Разделение запросов рекомендует, чтобы каждый метод был либо Командой, выполняющей действие, либо Запросом, который возвращает данные вызывающей стороне:
Но как насчет, например, метода replace () класса String.
Его подпись: String replace (String str);
Это нарушает CQS, не так ли?
Признавая, что это нарушает, я не понимаю, какмы можем исправить это так, чтобы replace (), то есть команда, могла сообщать вызывающей стороне о самой новой строке.Действительно, команда в соответствии с CQS должна иметь void в качестве возвращаемого типа.