Вы должны выбрать тот дизайн, который обеспечивает наименьшее количество информации для функции, но достаточно оптимальный для работы функции.Это гарантирует наименьшее количество побочных эффектов, ожидаемых от обработки.
Я думаю, что этот вопрос сводится к тому, передавать ли значение по ссылке или по значению.
В основном функции должны как минимумНикаких побочных эффектов, но если ваша функция предназначена для обработки данных, передаваемых в аргументах, то лучше передать ссылку на весь класс.
Например, когда вы берете ссылку на графические объекты в событии рисования Forms (в C #), известно, что манипулирование будет выполняться на переданной ссылке на объект (но, конечно, это зависит от ваших требований иРеализация).
Если ваша функция может работать должным образом без необходимости передачи ссылки на весь класс, вы должны снова выбрать это.Но помните, что передача большого количества параметров по значению требует больше ресурсов, так как новая копия должна создаваться каждый раз, и поэтому должна быть выделена новая память, где, как в случае ссылки, вы просто передаете ссылку, чтобы не выделялась новая память.
Ваш второй дизайн можно использовать, если вы хотите, чтобы ваш метод не оказывал побочного эффекта на передаваемые данные, вместо этого он работает с предоставленными данными и создает новый объект, содержащий результат, который вы в свою очередь назначаете для требуемогоАтрибуты.
Обычно восприятие читателей вашего кода таково, что если в правой части оператора присваивания вызывается какая-то функция, то он знает, что с данными что-то делается, но в данный момент создаются новые данные.вернулся и, следовательно, он, как правило, не ожидает, что он будет манипулировать данными, предоставленными в качестве параметра.Если читатель видит только вызов функции без какого-либо оператора присваивания, он ожидает, что что-то будет сделано с данными, предоставляемыми в качестве параметра.