Подтвердить что ты не робот

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

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

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

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

спасибо

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

Как насчет использования поставщика значений на один компонент по сравнению с входными параметрами (в этом случае сгруппированы).

Спасибо