Этот принцип называется Разделение команд и запросов .
Из Википедия :
Разделение команд и запросов (CQS) - это принцип обязательного компьютерного программирования. Он был разработан Бертраном Мейером как часть его новаторской работы над языком программирования Eiffel.
В нем говорится, что каждый метод должен быть либо командой , выполняющей действие, либо запросом , который возвращает данные вызывающей стороне, но не обоими. Другими словами, Задание вопроса не должно менять ответ . Более формально, методы должны возвращать значение, только если они прозрачны по ссылкам и, следовательно, не имеют побочных эффектов.
Лично я считаю этот принцип очень полезным. Он основан на общем наблюдении, что: когда мы видим функцию, которая возвращает некоторые данные, мы склонны думать , что она не меняет никакого состояния данных. Другими словами, эта функция не имеет побочных эффектов. В противоположность этому, функции с побочными эффектами считаются «рискованными» и поэтому должны иметь четкое указание (возвращающий тип void
). Видите ли, C # имеет концепцию Properties , где вы изменяете состояние свойства, используя символ присваивания, который является более сильным показателем, чем методы установки.
В заключение, принцип CQS помогает нашему коду легче читать и рассуждать, так как управление тем, как изменения состояния имеют решающее значение в программировании.
Вы можете найти больше полезных ссылок в статье в Википедии, и это и это .