java - 我应该如何用 Java 组织这些数据?

标签 java

我刚从 Haskell 毕业后正在学习 Java,我正在尝试建立一个小类(class)来代表一个通用机器人。我想添加的实例变量之一是机器人位置的某种表示。

在 Haskell 中,我会做类似的事情:

type Point = (Float, Float)
data Robot = Robot { position :: Point }

但是,据我所知,Java 没有任何此类别名或元组,因此我必须换一种方式来看待它。

我想创建另一个名为 Point 的类,并为其提供 2 个实例变量“x”和“y”(或者,理想情况下是更具描述性的变量),但这看起来很笨拙。我必须在它自己的文件中定义它(如果我没记错的话,每个类都在一个单独的文件中),而且它只有几行长(除非我需要添加功能,比如“运动”)。

我的另一个想法是做类似的事情:

public class Robot {
    ...
    int xPos;
    int yPos;
    ...

}

这更困惑,但更紧凑。

基本上,这一切都可以总结为:

在 Java 中是否典型地将程序分成大量较小的部分,而不管这些部分的大小?或者,如果重复使用的机会很小,是否通常将事物组合在一起?

(我知道理想情况下,一切都被视为将来可能会被重复使用,并被切割成一百万个子文件,但应该遵循到什么程度;尤其是在初始学习期间?)

最佳答案

答案是肯定的 :) 通常会在它们自己的文件中看到非常小的类,而一些其他功能可能是它自己的类,但事实并非如此。

为了以某种层次结构组织代码,您还可以看到内部类。当您知道此功能不会在外部使用,但与代码的其他部分有太多差异而无法保持在同一级别时,通常会使用这些内部类。

根据经验,我喜欢将新类的创建推迟到我知道我在其他地方需要它的时候,但我想这取决于程序的架构。

关于java - 我应该如何用 Java 组织这些数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27094316/

相关文章:

java - 获取 net.sf.jasperreports.engine.JRException : Byte data not found at location when pass java. awt.Image 作为参数

java - 在IntelliJ中使用Slf4j注解和Lombok时出现"log has private access"错误

java - 使用静态关键字

将字节数组转换为 double 时出现 java.nio.BufferUnderflowException

java - 处理(Drop and Log) Kafka producer 发布的不良数据,这样 Spark (Java) Consumer 不会将其存储在 HDFS 中

java - pi4J 适用于橙子派 Plus 2

java - 在 Java 持久性中较旧的查询

java - 如何从 mysql 触发器中捕获 sqlException 或信号消息

java - Netty-4.0.0.CR6 抛出 OutOfMemoryError

java - 改造:发送 POST 请求