Вы получаете данные, используя метод GetMusic(...)
.Если это так, то, вероятно, было бы слишком много усилий для использования дополнительной сущности без особой необходимости.
Действительно, в ситуации, когда имеется только один входной параметр, вы можете использовать пользовательский класс.Но если этот класс является единственным местом для использования, поэтому, если SongSignature
, как говорит название класса, необходимо использовать специально для этого класса, то это плохая практика использования "пакетов параметров", потому что это плохо читается.
Кроме того, если кто-то глупо говорит, что SongSignature
должна быть структурой, и в этой структуре есть указатель на некоторые данные, которые должны быть изменены внутри метода, этот указатель никогда не изменится, потому что каждый раз GetMusic
вызывается копия пакета свойств .
Даже если это класс, вы должны изменить аксессор для этого класса на public
и вообще это не лучший метод для передачи аргументов в функцию и получения результатов от функции, потому что вы уже получаете поток от этого метода.
Давайте предположим следующую ситуацию:
Если в команде один программист заменяет параметры классом SongRequest
, второй программист не обнаружил, что он используется в качестве параметра для функций (потому что он удаляет информацию в имени класса), иизменив его на структуру на следующей итерации, третий программист использовал этот метод таким образом, что он должен быть классом (например, использовать ссылку на класс)nces inside SongRequest
) ... В результате никто действительно не знал, почему что-то не работает, потому что у каждого из них есть купол right вещь ... Нет оправдания использованию класса для локальногоиспользование вместо неявного объявления параметров.
Обычно у вас есть хорошие шансы получить такую ситуацию в будущем, потому что:
- вы не тот, кто меняет ваш код (то есть
GetMusic
) - кто-то может просмотреть код и найти класс 'SongReqest' полезным (так что ситуация идет еще хуже - от локального использования до глобального использования класса)
- добавлениекласс
SongReuest
может добавить дополнительные зависимости для вашего метода (если кто-то изменит этот класс, скорее всего, ваш фундамент не скомпилирует) - с использованием
SongRequest
в качестве property bag
блокирует его использование только в качествекласс, как упоминалось ранее. - используя этот класс, вы, вероятно, никогда не поделитесь своими параметрами с другими вызовами функций (по какой причине?)
- наконец, используя
SongRequest
class оТолько для передачи параметров для конкретной функции дает дополнительную нагрузку на память, потому что, если этот метод вызывается часто, с одной стороны, это приведет к созданию большого количества ненужных объектов в памяти, которые необходимо будет собрать, с другой стороны, если такиеметод используется редко, будет просто не практично создавать класс для передачи нескольких переменных в один вызов
Существует только одна реальная причина использовать класс вместо двух строкАргументы: вы, программист, любите такие вызовы и хотите сделать весь код «красивее, чем раньше», более монадическим, несмотря на то, что это не очень практично и полезно.
Я бы никогда не советовал вам делать код таким, пока вы не захотите, чтобы он выглядел лучше.
Как правило, я предполагаю, что использует собственный класс для передачи аргументов дляфункция - плохая практика.