创建具有长参数列表的方法或将参数包装到对象中是否更好?

Gig*_*aPr 19 c# refactoring

使用长参数列表创建方法或将参数包装到对象中是否更好(最佳做法是什么)?

我的意思是假设我有一个具有很长属性列表的客户端数据类型,我想一次更新所有属性.做一些像这样的事情会更好

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)
{  }
Run Code Online (Sandbox Code Playgroud)

或者包装对象中的所有属性并执行类似的操作

public int Update(Client client)
{  }
Run Code Online (Sandbox Code Playgroud)

谢谢

Mar*_*ann 21

在他的" 重构"书中,Martin Fowler明确地将长参数列表称为代码气味,并建议重构这些方法以使用参数对象.

一种变化是识别那些许多参数如何对其自身进行分组,并创建表示每个这样的组的多个参数对象.

参数对象的优点是,当您可以为参数对象提供通信名称时,代码将变得更具可读性.事实证明,参数对象代表了一个真实的域概念,接下来你要做的就是开始将行为转移到它中.