gpt4 book ai didi

java - Java 中的 Setters 与重载构造函数

转载 作者:搜寻专家 更新时间:2023-10-31 08:17:49 25 4
gpt4 key购买 nike

我不确定以前是否有人问过类似的问题,搜索过,但没有得到任何有用的答案。

正如问题所暗示的,拥有一个重载的构造函数或拥有多个 setter 函数哪个更好?

场景:

public class Something {

private int a;
private int b;

public Something(int a, int b) {
this.a = a;
this.b = b;
}
... // Do Something
}

现在,我的基本要求是只有两个参数。现在明天,需求改变了,我被要求添加一个新参数 c,然后是第二天 d,并给出一个声明说我们可以有更多的字段。

我已经在多个项目中依赖于此构造函数。现在,回到我的问题

  • 继续向已经重载的构造函数中添加新字段是否可取?
  • 每次我需要添加一个新字段时都创建一个新的重载构造函数,这样我就不会破坏依赖代码?
  • 或者简单地使用默认的空默认构造函数并仅使用 setter(弄乱我的不变性,这不是很重要)

你能给我什么建议?

最佳答案

最令人愉快的方法是继续将字段添加到您的构造函数中——拥有 setter 意味着您不能拥有不可变对象(immutable对象),不可变对象(immutable对象)总是好的——但可能要调查 builder pattern ,这可以帮助您将自己限制在一个由构建器对象调用和“填充”的构造函数中。

关于java - Java 中的 Setters 与重载构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9882246/

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