gpt4 book ai didi

java - 返回 int[]-array 或使用自己的类 "Size"/"Dimension"/"Point"?

转载 作者:行者123 更新时间:2023-12-01 10:44:00 26 4
gpt4 key购买 nike

当我的一个类有一个返回其当前大小(由宽度和高度组成)的方法时,或者当我有一个方法应该返回屏幕上由 x 和 y 组成的点时值,返回该值的最佳方法是什么?

我是否应该(我怀疑)只返回一个无意义的 int[] 或 float[] 数组,这将是最简单的(也许是最快的,如果这明显影响运行时间)这样的方式?

public int[] getPosition()

或者我应该编写一个自己的小类,其中包含获取和设置宽度和高度/x 坐标和 y 坐标的方法?

public Dimension getSize()

据我搜索,标准库中没有类可以完全执行此操作。
或者有吗?
我不太确定是否 PointDimension适合此任务,或者如果这宁愿滥用它们。

最好的方法是什么?最好、最合理的解决方案是什么?

谢谢
大卫

最佳答案

使用更抽象的术语!

在 OOP 中,清晰的抽象级别几乎总是好的。这可以让您和其他人知道您在做什么。想象一下这是您第一次看到这段代码:

public int[] getSize ()

他/她如何知道数组中的哪个元素代表宽度或高度?你当然可以写评论

//0 index: width
//1 index: height

但也许过了一段时间,你说你想将数组中的第二个元素更改为宽度,但你忘记更改注释。

看到了吗?评论很容易过时!

这就是为什么您应该创建自己的维度

public class Dimension {
private int width;
private int height;
//getter setter omitted as I'm lazy. But please DO add them in your code!
}

现在想象一下这是您第一次看到这个:

public Dimension getSize ()

然后您进入Dimension的声明并看到widthheight。即使是傻瓜也知道 Dimension.width 表示某物的宽度。

正如您现在所看到的,现在更加清晰了。

关于java - 返回 int[]-array 或使用自己的类 "Size"/"Dimension"/"Point"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34301119/

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