当我的一个类有一个方法返回,例如,它的当前大小由宽度和高度组成,或者当我有一个方法应该返回屏幕上由x和ay组成的点时值,返回这个值的最佳方法是什么?
我怀疑,我是否应该返回一个无意义的int []或float []数组,这将是最简单的(也许最快,如果这显着影响运行时间)这样的方式?
ruby test.rb
或者我应该编写一个自己的小类,其中包含获取和设置宽度和高度/ x坐标和y坐标的方法?
public int[] getPosition()
就我所搜索而言,标准库中没有任何类可以做到这一点
或者有吗?
我不确定Point和Dimension是否适合这项任务,或者这是否会误用它们。
最好的方法是什么,最好和最合理的解决方案是什么?
感谢
大卫
答案 0 :(得分:1)
使用更抽象的术语!
在OOP中,明确的抽象层次几乎总是好的。这可以让你和其他人知道你在做什么。想象一下,这是你第一次看到这段代码:
public int[] getSize ()
他/她如何知道数组中的哪个元素代表宽度或高度?你当然可以写评论
//0 index: width
//1 index: height
但也许过了一段时间,你说你想要将数组中的第二个元素更改为宽度,而你忘了更改注释。
请参阅?评论很容易过时!
这就是为什么你应该创建自己的Dimension
和Point
。
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
意味着某事物的宽度。
正如您现在所看到的,现在更加清晰。
答案 1 :(得分:0)
在你的应用程序中,如果你只需要x,y和维度信息,使用你自己的类来表示Points和Dimensions比数组(无意义)更合适,而且比java awt geom组件更合适(比你的更复杂)需要)。创建一个Utility Classe,在其中指定您作为应用程序的通用组件所需的所有内容。