方法调用中的参数太多

Nei*_*eil 4 design-patterns builder-pattern

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

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

Burger(bun, meat, cheese, lettuce)
    this.bun = bun
    this.meat = meat
    ...
Run Code Online (Sandbox Code Playgroud)

VS

Burger(grocery)
    this.bun = grocery.bun
    this.meat = grocery.meat
    ...
Run Code Online (Sandbox Code Playgroud)

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

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

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

小智 5

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

我记得Joshua Bloch(Effective Java)推荐Builder Pattern来应对这种情况(第2项)

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