适当的类组织和文件层次结构

时间:2015-08-10 17:56:41

标签: java packages hierarchy conventions

作为计算机编程专业,我需要知道在类组织和文件层次结构方面程序开发(更具体地说是游戏开发)的惯例。 This网页解释了命名约定。我最近坐下来记住它。所以,前进,这不是我想要帮助的那种组织。

如果我要创建像超级马里奥世界这样的通用平台游戏,我该如何组织我的包,课程等?在包装和课程的组织方面,什么会被认为是过度的,可以说是什么被认为是“泥球”?

可以理解,这可能都是一个意见问题,也许StackOverflow上还有另一个问题可以回答我的问题,但如果有人能够提出他们个人使用的任何适当约定的建议,那将会有很大帮助。

1 个答案:

答案 0 :(得分:2)

从语言角度来看,包允许在不同的上下文中使用相同的类名。 如果您将它们放在不同的包中,则可能有多个名为SuperMario的类 包限定了类名。

从应用程序的角度来看,包允许您表达应用程序的结构。 如果有人想要了解您的源代码,它将首先查看包。因此任何好的包装设计 将允许此人更快地理解您的代码。 因此,对于大型代码库,拥有一个良好,直观的包结构非常重要。

以下是我应用于包装设计的一些原则:

1。只要您愿意在应用程序发展过程中重构软件包,就不必预先设计完美的软件包结构。

2. 将处理应用程序相同方面的类放在同一个包中。

com.supermario.gui
com.supermario.model
com.supermario.events

3。如果您认为某个程序包包含太多类并且变得拥挤,那么请将其重构为子包。

com.supermario.model           95 classes

重构

com.supermario.model.ape       30 classes
com.supermario.model.stair     40 classes 
com.supermario.model.ton       25 classes

4. 当你觉得一个软件包包含太多的子包并且变得拥挤时,将它们重构为子包的子包,或者组合子包:

com.supermario.gui.levela01
...
com.supermario.gui.levelz99

重构

com.supermario.gui.level
com.supermario.gui.level.a
com.supermario.gui.level.a.01
...
com.supermario.gui.level.z
com.supermario.gui.level.z.99

最终没有正确或错误的设计,但设计和结构易于理解与否。