gpt4 book ai didi

java - 如何设计构造函数?

转载 作者:行者123 更新时间:2023-12-01 06:39:12 24 4
gpt4 key购买 nike

让我们假设一个类 Foo 有 2 个实例变量:int x 和 int y。该用例要求我可以使用无参数、单个参数或所有参数来构造类。

input X    input Y

0 0 no constuctor

0 1 public Foo(int x);

1 0 public Foo(int y);

1 1 public Foo(int x, int y);

现在这种情况下的惯例/最佳实践是什么。我需要添加构造函数的所有排列吗?如果是的话,它将导致指数级增长。如果否,那么解决方案是什么?

最佳答案

最好的选择是使用构建器模式,如下所示

new FooBuilder().build()   // Uses default values for both parameters

new FooBuilder().setX(42).build() // Uses default value for y

new FooBuilder().setY(-13).build() // Uses default value for x

new FooBuilder().setX(42).setY(-13).build() // Supplied values for both

然后你的构建器可能看起来像

class FooBuilder {
public Foo build() { return new Foo(...); }
public FooBuilder setX(int x) { ...; return this; }
public FooBuilder setY(int y) { ...; return this; }
}

关于java - 如何设计构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19085886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com