OOD:谁应该从持久层创建对象?

时间:2011-03-14 09:25:29

标签: design-patterns architecture

在我的软件中,我有5个主要层:

  • UI
  • CONTROLLER
  • DOMAIN(业务规则)
  • PERSISTENCE
  • MYSQL(db)

我应该在哪个层以及向谁分配从持久层获取域对象的职责?我决定在域层中创建一个新分区,但是控制器层这样做会使得如何创建域对象变得模棱两可。

我正在寻找一种优雅的解决方案来创建域对象,方法是将它们从持久状态中删除。

2 个答案:

答案 0 :(得分:0)

如果您的持久层已准备就绪,可以使用一些工具从DB Schema创建类,

其中一个是NetBeans持久性插件。

现在,您可以将任何ORM工具用于域模型[从DB Schema创建的类]和实际DB。

答案 1 :(得分:0)

您应该从了解上下文/用例的图层中检索持久层中的对象。

换句话说:在您实现用例的层中,您应该调用可以从数据库中检索(或保存)对象的存储库(或其他持久层对象)。 恕我直言,这是唯一正确的事情。它是具有“上下文”知识的层(知道更大图景的层),它也了解交易的“生命周期”。该层也负责您的交易管理。