gpt4 book ai didi

java - 创建采用 boolean 值 isX 并根据该值需要 isY 的 boolean 值的构造函数的最佳实践是什么?

转载 作者:行者123 更新时间:2023-11-30 07:41:09 26 4
gpt4 key购买 nike

在这个假设的问题中,我创建了一个类来表示 Sausage,它可以是:A. 新鲜和包装B. 新鲜且未包装C. 不新鲜且未包装

注意:不能是不新鲜和未包装的。

考虑到这一点,我正在寻找创建构造函数的最佳实践。

下面是我尝试的方法,但我认为应该有更好的解决方案。

public class Sausage {
Meat meat;
boolean isFresh;
boolean isPackaged;

public Sausage(Meat meat, Boolean isFresh, Boolean isPackaged) {
this.meat = meat;
if (!isFresh) {
this.isFresh = false;
this.isPackaged = false;
}
else if (isPackaged) {
this.isFresh = true;
this.isPackaged = true;
}
else {
this.isFresh = true;
this.isPackaged = false;
}
}
}

我正在寻找一种更简洁的方式来提供此功能。

最佳答案

您可以将可能的状态表示为枚举类型:

enum SausageType {
FreshPackaged,
FreshUnpackaged,
NotFresh;
}

然后更改您的构造函数以采用 SausageType 而不是两个 Boolean

这个方法的优点是不可能用错误的状态组合调用构造函数,你的类的用户很明显可能的值是什么,你不需要记住保持脆弱的运行时根据不断变化的要求检查最新的参数。

关于java - 创建采用 boolean 值 isX 并根据该值需要 isY 的 boolean 值的构造函数的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56351028/

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