Лучше создать методы с длинным списком параметров или перенести параметры в объект?

Это лучше (какова лучшая практика) создать методы с длинным списком параметров или перенести параметры в объект?

Я имею в виду, позволяет, говорят, что у меня есть тип Клиентских данных с длинным списком свойств, и я хочу обновить все свойства сразу. лучше сделать что-то как

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)
{  }

спасибо

19
задан Abel 8 April 2010 в 09:23
поделиться

3 ответа

В своей книге Рефакторинг Мартин Фаулер явно называет длинные списки параметров как запах кода и предлагает провести рефакторинг такие методы используют объект параметра .

Вариант состоит в том, чтобы определить, как эти многие параметры группируются, и создать более одного объекта параметров, представляющих каждую такую ​​группу.

Преимущество объекта параметра состоит в том, что код становится более читаемым , когда вы можете дать объекту параметра коммуникативное имя . Может оказаться, что объект параметра представляет реальную концепцию домена , и следующее, что вы можете сделать, - это начать перемещать в него поведение .

21
ответ дан 30 November 2019 в 04:40
поделиться

Я бы сказал, что лучше использовать объект. Если вы выполните поиск по Stack Overflow, есть множество других сообщений по этой теме

1
ответ дан 30 November 2019 в 04:40
поделиться

Обычно следует использовать объект. Обычно, когда у вас есть большое количество параметров в методе, эти параметры описывают конкретное «состояние». Ваш пример кода точно указывает на то, что я имею в виду.

0
ответ дан 30 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: