【问题标题】:Proper Class Organization and File Hierarchy [closed]适当的类组织和文件层次结构[关闭]
【发布时间】:2015-08-10 17:56:40
【问题描述】:

作为一名计算机编程专业的学生,​​我需要了解程序开发(更具体地说是游戏开发)在类组织和文件层次结构方面的约定。 This 网页解释了命名约定。我最近坐下来记住它。因此,展望未来,这不是我想要帮助的那种组织。

如果我要创建像《超级马里奥世界》这样的通用平台游戏,我该如何组织我的包、课程等?就包和类的组织而言,什么是矫枉过正的,可以说什么是“大泥球”?

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

【问题讨论】:

    标签: java packages hierarchy conventions


    【解决方案1】:

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

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

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

    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
    

    说到底,设计没有对错之分,只有通俗易懂的设计和结构。

    【讨论】:

      猜你喜欢
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 2015-12-16
      • 2011-08-10
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 2011-09-19
      相关资源
      最近更新 更多