到目前为止,我的普通类包含大约500行代码和大约50种方法。 IDE是Eclipse,我在其中转为“保存操作”,以便按字母顺序排序方法,首先是公共方法,然后是私有方法。 要在代码中找到任何特定方法,我使用“快速大纲”。如果需要,“Open Call Hierarchy”显示逐个调用的方法序列。
这种方法具有以下优点:
但是有一些缺点:
当将大型方法重构为较小的方法时,我不太满意新的私有方法被放置在代码的不同部分,因此遵循代码概念有点困难。为了避免这种情况,我以一种奇怪的方式命名它们以使它们靠近每一个,例如:showPageFirst(),showPageSecond()而不是showFirstPage(),showSecondPage()。
可能有更好的方法吗?
答案 0 :(得分:4)
为其受众群体整理代码。例如,库中的类可能具有以下受众:
对于仔细阅读源代码的客户,您需要介绍核心概念。首先,我们有一个课程文档评论,其中包括重要术语和用法示例的词汇表。然后我们将代码与一个术语相关,然后与另一个术语相关,然后与第三个术语相关。
对于维护者来说,任何可能需要一起改变的方法都应该靠近。公共方法及其私有帮助程序以及与之相关的任何常量只能一起显示。
通过将类成员分组为单独记录的逻辑部分,可以帮助这两组用户。
例如,集合类可能有几个主要是正交的问题,这些问题不容易分解为单独的类,但可以分成不同的部分。
答案 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。