在构造函数中调用私有方法是一个好的设计吗?

时间:2016-08-10 01:43:47

标签: java design-patterns constructor initialization

说我有以下课程:

{{1}}

我正在使用这个类来保存我需要通过应用程序引用的所有字段。我仍在学习良好的设计和糟糕的设计实践,所以我想知道这个糟糕的设计是否初始化orderForm的属性。

如果是这样,怎么可以改进?

2 个答案:

答案 0 :(得分:3)

没关系。

要记住的重要规则是不允许this转义"转义"这意味着不要让实例直接或隐式地传递,因为匿名/内部类,到另一个"过程" (用最广义的术语定义)。

原因是当其他进程获得它时,您的实例可能无法完全初始化,这可能导致不一致和奇怪的错误。

答案 1 :(得分:1)

从构造函数中调用私有方法来初始化类中使用的一些数据是可以的。只要确保你的方法没有副作用"就像你的类的用户可能不会只想调用你的构造函数那样的长时间方法。

如果您有这样的方法,也许您应该提取您的类用户在准备好时使用的Inititialize方法。