你如何用Java组织类源代码?

时间:2012-08-23 08:06:09

标签: java

到目前为止,我的普通类包含大约500行代码和大约50种方法。 IDE是Eclipse,我在其中转为“保存操作”,以便按字母顺序排序方法,首先是公共方法,然后是私有方法。 要在代码中找到任何特定方法,我使用“快速大纲”。如果需要,“Open Call Hierarchy”显示逐个调用的方法序列。

这种方法具有以下优点:

  • 我可以开始输入新方法而不考虑将它放在代码中的位置,因为在保存之后它将被Eclipse放置到适当的位置。
  • 我总是在代码的上半部分找到公共方法(不必为它们搜索整个类)。

但是有一些缺点:

当将大型方法重构为较小的方法时,我不太满意新的私有方法被放置在代码的不同部分,因此遵循代码概念有点困难。为了避免这种情况,我以一种奇怪的方式命名它们以使它们靠近每一个,例如:showPageFirst(),showPageSecond()而不是showFirstPage(),showSecondPage()。

可能有更好的方法吗?

4 个答案:

答案 0 :(得分:4)

为其受众群体整理代码。例如,库中的类可能具有以下受众:

  1. 需要有关公共方法如何工作的更多详细信息的API客户端。
  2. 想要找到相关方法进行小改动的维护者。
  3. 一位更加认真的维护者,希望进行重大的重构或添加功能。
  4. 对于仔细阅读源代码的客户,您需要介绍核心概念。首先,我们有一个课程文档评论,其中包括重要术语和用法示例的词汇表。然后我们将代码与一个术语相关,然后与另一个术语相关,然后与第三个术语相关。

    对于维护者来说,任何可能需要一起改变的方法都应该靠近。公共方法及其私有帮助程序以及与之相关的任何常量只能一起显示。

    通过将类成员分组为单独记录的逻辑部分,可以帮助这两组用户。

    例如,集合类可能有几个主要是正交的问题,这些问题不容易分解为单独的类,但可以分成不同的部分。

    1. 存取器
    2. 访问者
    3. 迭代
    4. 序列化和toString
    5. 平等,可比性,哈希

答案 1 :(得分:3)

好吧,命名你的方法,以便在IDE中更容易发现它们真的不好。他们的名字应该反映他们的所作所为,仅此而已。

作为对您的问题的回答,可能最好的做法是将您的类分成多个类,并隔离在每个类中都有共同点的方法组。例如,如果你有

public void largeMethodThatDoesSomething() {
 //do A
 //do B
 //do C
}

然后你重构了这样:

public void largeMethodThatDoesSomething() {
 doA();
 doB();
 doC();
}

private void doA() {};
private void doB() {};
private void doC() {};

您可以创建一个名为SomethingDoer的类,您可以在其中放置所有这4个元音,然后在原始类中使用该类的实例。

答案 2 :(得分:3)

不要担心在课堂上对你的方法进行物理排序,如果你看不到它只是使用Ctrl-O并开始输入方法名称,你将直接跳到它。

具有自描述方法名称会导致代码更易于维护,而不是人为地命名它们以使其按字母顺序排列。

提示:了解您的快捷键,您将提高工作效率

答案 3 :(得分:1)

组织您描述的方式听起来比我迄今为止看到的99%的Java代码要好。但是,另一方面,请确保您的课程不会增长太多,方法也不是很大。

类通常应小于1000行,方法小于150。