gpt4 book ai didi

java - 类是否应该负责检查是否已创建可行的对象?如果是这样怎么办?

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

我刚刚开始学习 Java 的 OOP 并遇到了一个问题,这让我开始思考,尽管可能太多了。我寻找答案已经有一段时间了,但找到正确的问题往往是最大的挑战。

我用两个方法 isTriangle() 和 typeOfTriangle() 创建了一个 Triangle 类。我的构造函数有 3 个参数(side1、side2、side3)。

这是我第一次经历,我意识到用户可以传入参数来创建一个实际上不是三角形的对象,就像两条边加在一起小于第三条边的情况一样。我向构造函数添加了逻辑,用于检查实际参数是否构成三角形。这看起来根本不是正确的做法。

问题:Triangle 类是否应该负责确定实际参数是否创建可行的三角形?如果是这样怎么办?该逻辑实际上会与构造函数一起使用吗?

您是否需要先创建对象(非三角形),然后使用 myTriangle.isTriangle(); 确定您创建的对象是否可行; ?

客户端/用户似乎不应该负责确定 Triangle 类是否返回可行的 Triangle。难道不应该这样假设吗?尽管我一直听说假设是所有错误之母。

我没有包含代码,因为它非常初级,我相信你们都明白了。只是不确定应该在“哪里”进行此检查。似乎如果该类不是三角形,则不应返回任何内容。我很可能想得太多了。

感谢您花时间阅读我的帖子。

最佳答案

允许或禁止“无效”三角形是否更有意义取决于您;例如,如果您正在进行计算,那么禁止它们可能确实有意义。

如果您有这些类型的先决条件,则应该在构造函数中检查它们并引发异常(IllegalArgumentException 或其自定义子类通常是正确的选择)。

另一方面,如果允许“无效”三角形在某种程度上是有意义的,那么您当然可以使用 isValid() 方法进行检查。

关于java - 类是否应该负责检查是否已创建可行的对象?如果是这样怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34774488/

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