Это лучше (какова лучшая практика) создать методы с длинным списком параметров или перенести параметры в объект?
Я имею в виду, позволяет, говорят, что у меня есть тип Клиентских данных с длинным списком свойств, и я хочу обновить все свойства сразу. лучше сделать что-то как
public int Update(int id, string name, string surname, string streetAddress, string streetAddress2, string postcode, string town, string city, string nationality, string age, string gender,string job)
{ }
или перенесите все свойства в объект и сделайте что-то как
public int Update(Client client)
{ }
спасибо
В своей книге Рефакторинг Мартин Фаулер явно называет длинные списки параметров как запах кода и предлагает провести рефакторинг такие методы используют объект параметра .
Вариант состоит в том, чтобы определить, как эти многие параметры группируются, и создать более одного объекта параметров, представляющих каждую такую группу.
Преимущество объекта параметра состоит в том, что код становится более читаемым , когда вы можете дать объекту параметра коммуникативное имя . Может оказаться, что объект параметра представляет реальную концепцию домена , и следующее, что вы можете сделать, - это начать перемещать в него поведение .
Я бы сказал, что лучше использовать объект. Если вы выполните поиск по Stack Overflow, есть множество других сообщений по этой теме
Обычно следует использовать объект. Обычно, когда у вас есть большое количество параметров в методе, эти параметры описывают конкретное «состояние». Ваш пример кода точно указывает на то, что я имею в виду.