0

我通过传递要用于构造对象的数据行的主键来使用数据库表中的数据构造对象。

这个对象的成员变量的填充应该发生在构造函数中还是构造函数调用的另一个方法中,或者完全在其他地方?

这是如何在 Rails ActiveRecord 和其他 ORM 中完成的,我怀疑框架为每个字段调用了一组设置器,但我真的不想要一个复杂的框架来做这一切,所以有什么好的做法来扮演我的角色自己的简单机制?

注意:请记住,我不想创建大量无法管理自己状态的贫血数据模型。

4

2 回答 2

2

许多语言和框架遵循的安全规则是永远不要在构造函数中做危险的事情(阅读:可能抛出异常的操作),因为您通常没有能力抛出这些异常或以其他方式优雅地响应它们。我的建议是在类之外执行数据库操作,然后使用自定义构造函数来获取对象中所需的字段。在该构造函数中,您将设置(通过简单的赋值)您的内部成员。

于 2011-03-24T19:49:26.407 回答
1

我不把管理持久性归入贫血的范畴。这属于一个单独的持久层。我不会把它放在构造函数中。

我认为当对象只关心状态并且不嵌入商业智能来操纵它时,就会导致贫血。多想想吧;不要担心持久性。

于 2011-03-24T19:45:16.020 回答