返回int [] - 数组或使用自己的类为"大小" /"维度" /"点"?

时间:2015-12-15 23:03:45

标签: java

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

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

ruby test.rb

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

public int[] getPosition()

就我所搜索而言,标准库中没有任何类可以做到这一点 或者有吗?
我不确定PointDimension是否适合这项任务,或者这是否会误用它们。

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

感谢
大卫

2 个答案:

答案 0 :(得分:1)

使用更抽象的术语!

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

public int[] getSize ()

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

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

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

请参阅?评论很容易过时!

这就是为什么你应该创建自己的DimensionPoint

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意味着某事物的宽度。

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

答案 1 :(得分:0)

在你的应用程序中,如果你只需要x,y和维度信息,使用你自己的类来表示Points和Dimensions比数组(无意义)更合适,而且比java awt geom组件更合适(比你的更复杂)需要)。创建一个Utility Classe,在其中指定您作为应用程序的通用组件所需的所有内容。