【发布时间】:2018-02-09 19:00:51
【问题描述】:
使所有字段final 通常是一个好主意,但有时我发现自己在构造函数中做了所有事情。最近我在构造函数中完成了一个实际上所有操作的类,包括读取属性文件和访问数据库。
一方面,这就是类的用途,它封装了读取的数据,我喜欢创建完全初始化的对象。构造函数一点也不复杂,因为它委托了大部分工作,所以看起来不错。
另一方面,感觉有点奇怪。此外,在大约 17:58 的 this talk 中,有充分的理由在构造函数中没有做太多工作。我想我可以通过传递适当的假人作为构造函数参数来消除这个问题。
问题仍然存在:在构造函数中做大量工作(甚至所有工作)是否不好?
【问题讨论】:
-
见stackoverflow.com/questions/531282/…。不过,我永远不会将 DB 调用放入构造函数中 - 考虑在单独的工厂类中使用静态工厂方法。
标签: java constructor