c# - 创建具有一长串参数的方法还是将参数包装到一个对象中更好?

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

或者将所有属性包装在一个对象中,然后做类似的事情

public int Update(Client client)
{  }

谢谢

最佳答案

在他的书中Refactoring , Martin Fowler 明确指出长参数列表是一种代码味道,并建议重构此类方法以使用参数对象

一种变体是识别这些参数如何分组,并创建多个参数对象来表示每个这样的组。

参数对象的优势在于,当您可以为参数对象指定一个可交流的名称时,代码变得更具可读性。结果可能是参数对象代表了一个真正的领域概念,接下来您可以做的就是开始将行为移入其中。

关于c# - 创建具有一长串参数的方法还是将参数包装到一个对象中更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2598703/

相关文章:

c# - 如果角度太大,对象将开始沿对撞机边缘移动

ruby-on-rails - 如何进一步重构 ruby 哈希

c# - 重构方法以使用类作为参数

c# - Linq 分组优化

java - 有没有一种方法可以仅针对其副作用应用重构脚本?

design-patterns - 如何重构执行多个步骤(相互依赖)的方法?

java - 将条件移动到类时出错

c# - 如何在 dll 级别读取 app.config。?

c# - 类型 `Kaitai.Elf' 已经包含 `Bits' 的定义

c# - 如何通过属性包装方法?