当我的一个类有一个返回其当前大小(由宽度和高度组成)的方法时,或者当我有一个方法应该返回屏幕上由 x 和 y 组成的点时值,返回该值的最佳方法是什么?
我是否应该(我怀疑)只返回一个无意义的 int[] 或 float[] 数组,这将是最简单的(也许是最快的,如果这明显影响运行时间)这样的方式?
public int[] getPosition()
或者我应该编写一个自己的小类,其中包含获取和设置宽度和高度/x 坐标和 y 坐标的方法?
public Dimension getSize()
据我搜索,标准库中没有类可以完全执行此操作。
或者有吗?
我不太确定是否 Point和 Dimension适合此任务,或者如果这宁愿滥用它们。
最好的方法是什么?最好、最合理的解决方案是什么?
谢谢
大卫
最佳答案
使用更抽象的术语!
在 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
的声明并看到width
和height
。即使是傻瓜也知道 Dimension.width
表示某物的宽度。
正如您现在所看到的,现在更加清晰了。
关于java - 返回 int[]-array 或使用自己的类 "Size"/"Dimension"/"Point"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34301119/