对象是否应该在构造函数中设置自己的属性?

时间:2011-05-03 20:27:30

标签: object attributes constructor

我想知道一个Object是否应该根据构造函数中的一个参数设置自己。例如:如果在构造函数中指定了对象ID,那么对象本身是否应该通过从数据库中获取其他数据来设置自己的变量?或者,是否应该显式创建另一个类来创建此对象,然后将该对象隐藏在该对象中。

4 个答案:

答案 0 :(得分:1)

以下是我的建议

  1. 根据ID对此构造使用ObjectFactory模式。任何开始类似于食谱的东西,ObjectFactory模式效果最好。

  2. 我不建议在Object的构造函数中使用对数据库的依赖。您也可以将此数据加载逻辑放在ObjectFactory中。

  3. 基本上,我觉得课程的实施应尽可能精益。

答案 1 :(得分:1)

另一个类应该通过读取从数据库创建它所需的值来实例化Object。这是一个更好的关注点分离。保存值的Object可能只是一个JavaBean,即值保持对象。我当然不会为单个对象添加数据库访问代码。

答案 2 :(得分:1)

取决于场景。但根据经验,您应该尝试将对数据库的访问与对象分开。就个人而言,我可能会使用一个构建器类,它具有用于数据库访问的可注入接口,并将返回/构建一个对象。

请注意,有很多场景让对象自己创建。

答案 3 :(得分:1)

如果它足够复杂,你可以看看实现工厂(http://en.wikipedia.org/wiki/Factory_method_pattern)。

我相信这可能就是你在帖子中描述的“另一个对象”,它有助于创作。