java类中的函数太多,如何拆分多个文件

时间:2014-03-08 11:25:14

标签: java

我有一个java类,它有很多功能,都在一个文件中。此文件中的总行数约为50K。我觉得很难读。我可以将一些功能移到不同的文件中吗?如果是的话,该怎么做。如果不是,是否还有其他技术可以使程序更具可读性。

2 个答案:

答案 0 :(得分:4)

通过大量测试仔细地重构所有内容,这样你就不会破坏任何东西。当然,您可以将一些函数提取到另一个类。

一个文件中的50K行很多。使用组合将指令的某个子集(遵循the Single Responsibility Principle!)提取到一个单独的类中,并简单地保留一个指向该类实例的字段。

如果你问你是否可以将同一个班级分成多个文件(比如C#的partial):不,你不能。

答案 1 :(得分:1)

为模型中的各种概念定义域对象(例如值对象), 并将与这些类相关的功能放在其中。

例如,如果你有

public class MyBigClass {
   ...
   private String account;
   ...
   private boolean accountIsValid() { ... }
   ...
}

然后将帐户分成帐户类,如下所示:

public class Account {
  public Account(String accountNumber) { ... }
  public boolean isValid() { ... }
}

public class MyBigClass
  ...
  private Account account;
  ...
}

如果您继续这样做,并确保功能始终与之一起 价值,你的庞大阶级将迅速缩小。尽量避免使用本机类型(如String)作为值对象的内部值。

另外,请查看commons-lang和google guava等库,以确保您没有重新实现已经存在合适解决方案的复杂内容;可以简化代码并减少实现错误机会的类的示例是EqualsBuilder和HashCodeBuilder。

为了进一步改善您的编码风格,请考虑阅读以下书籍: