gpt4 book ai didi

java - 内联字段初始化与构建器哪个更好

转载 作者:行者123 更新时间:2023-11-30 08:02:24 25 4
gpt4 key购买 nike

我创建了一个包含许多字段的类,我想根据一些默认值初始化其中大部分字段,同时根据我的需要及时设置一些字段。我遇到了此类的两个解决方案。内联字段初始化和构建器。任何意见?我知道构建器模式很流行,但为什么不直接使用默认的内联字段初始化呢?

//Inline field initialization:

class foo{
int a = 0;
int b = 1;

public foo setA(int a){this.a = a; return this;}
public foo setB(int b){this.b = b; return this;}
}

//use foo
foo f = new foo().setA(1).setB(2);

//builder
class bar(){
int a;
int b;
bar(int a, int b){this.a = a; this.b = b}
public static class Builder(){
int a = 0;
int b = 0;
public bar build(){
return new bar(a, b);
}

public Builder a(int a){this.a = a; return this;}
public Builder b(int b){this.b = b; return this;}
}
}

// use
bar b = bar.Builder.build().a(1).b(2);

最佳答案

当面对许多构造函数参数时需要考虑构建器模式。构造函数不能很好地扩展大量可选参数。
请参阅:Effective Java http://www.informit.com/articles/article.aspx?p=1216151&seqNum=2 中的第 2 项
如果您的字段数量不会增加到很多,那么我更喜欢使用内联字段初始化,因为这意味着编写更少的代码,这总是好的。

关于java - 内联字段初始化与构建器哪个更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31694857/

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