方法调用中的参数太多

时间:2011-01-07 06:20:20

标签: design-patterns builder-pattern

最近我在尝试编写有关所请求参数数量的课程时被撕裂了。

一个非常简单的构造函数示例:

Burger(bun, meat, cheese, lettuce)
    this.bun = bun
    this.meat = meat
    ...

Vs的

Burger(grocery)
    this.bun = grocery.bun
    this.meat = grocery.meat
    ...

两种方式都是有效的方法。第一种方式准确地显示了进入汉堡的内容,将参数分解为更一般的类,因此它减少了耦合,我认为通常更容易测试,因为对象图更简单。

但第二种方式更简单,更清洁,也许汉堡可能需要更多的成分,然后第一种方式的争论可以大大增加。

我想知道在这种情况下推荐哪种方式?寻求更干净但更多耦合的代码,或更冗长的方式。

1 个答案:

答案 0 :(得分:5)

将4+个参数传递给任何方法或构造函数不是一个好主意或一个好的设计。

我记得约书亚布洛赫(Effective Java)推荐Builder Pattern这种情况(第2项)

  

Item 2:在面对许多构造函数参数时考虑构建器