我刚从Haskell来学习Java,我试图建立一个小类来代表一个通用的机器人。我要添加的一个实例变量是Robot的位置的某种表示。
在Haskell中,我会做一些类似的事情:
type Point = (Float, Float)
data Robot = Robot { position :: Point }
但是,据我所知,Java没有任何这样的别名或元组,所以我不得不以另一种方式看待它。
我想到了创建另一个名为Point的类,并为它提供了2个实例变量" x"和" y" (或者,理想情况下更具描述性的东西),但这看起来很笨拙。我必须在它自己的文件中定义它(如果我正确回忆,每个类都在一个单独的文件中),它只会有几行(除非我需要添加功能,比如"移动"。)
我的另一个想法是做一些像:
public class Robot {
...
int xPos;
int yPos;
...
}
更混乱,但更紧凑。
基本上,这可以概括为:
在Java中,将程序分成大量小块是否是典型的,无论块的大小如何?或者,如果重复使用的可能性很小,那么将它们组合在一起是否典型?
(我知道,理想情况下,所有内容都被视为可能在将来重复使用,并切换成一百万个子文件,但应该遵循多少程度;尤其是在初始学习期间?)< / p>
答案 0 :(得分:2)
答案是肯定的:)通常会在自己的文件中看到非常小的类以及其他一些可能属于自己类的功能,但它不是。
您还可以看到内部类,以便在某种层次结构中组织代码。这些内部类主要是在你知道这个功能不会在外面使用的时候使用的,但是与代码的其他部分相比太多而且太不同以保持同一级别。
我作为一个经验法则,就像我知道我需要在其他地方使用它一样停止创建新类,但我想这取决于程序的体系结构。
答案 1 :(得分:0)
无论哪种方式都可以,你可以做到。当我编写这样的代码时,我通常使用单一类策略。
{{1}}
然而,走另一条路并创建一个包装类也没错。这取决于您的偏好。在这种特殊情况下,我建议使用内置的{{1}}类。回答一般性问题:这两种实现都是可以接受和常用的。