我有一个java类,它有很多功能,都在一个文件中。此文件中的总行数约为50K。我觉得很难读。我可以将一些功能移到不同的文件中吗?如果是的话,该怎么做。如果不是,是否还有其他技术可以使程序更具可读性。
答案 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。
为了进一步改善您的编码风格,请考虑阅读以下书籍: