有什么更好的方法来创建一个需要很多参数的方法?(10+?)

Cod*_*ody 5 language-agnostic coding-style

我正在查看一些开发人员的代码,几乎哭了.在方法定义中有12个参数.根据我的经验......这不好.如果是我,我会发送某种对象.

有没有其他/更优选的方法来做到这一点(换句话说,解决这个原因的最佳方法是什么)?

public long Save (
    String today, 
    String name, 
    String desc, 
    int ID, 
    String otherNm, 
    DateTime dt, 
    int status, 
    String periodID, 
    String otherDt, 
    String submittedDt
)
Run Code Online (Sandbox Code Playgroud)

忽略我糟糕的变量名 - 他们就是例子

nin*_*cko 5

这在很大程度上取决于语言.

在没有编译时类型检查的语言中(例如python,javascript等),您应该使用关键字参数(在python中很常见:您可以像作为参数传入的字典一样访问它们)或者您手动作为参数传入的对象/字典(常见于javascript).

然而,你所描述的"论证地狱"有时是"使用编译时类型检查对某些语言做事的正确方法",因为使用对象会混淆来自类型检查器的语义.然后解决方案是使用更好的语言进行编译时类型检查,它允许将对象的模式匹配作为参数.