模型(在MVC中)和DAO应该如何交互?

时间:2009-11-05 23:16:38

标签: java design-patterns orm

模型和DAO应该如何互动?我正在组建一个简单的登录模块,我不确定在哪里放置“业务逻辑”。如果我将逻辑与数据放在模型中,我将如何访问逻辑?

目前,我有:

  
      
  1. 接收表单数据的控制器
  2.   
  3. 模型,它是db表的简单反映
  4.   
  5. 使用hibernate的 DAO 执行简单的选择查询,基于   表格参数由   控制器。
  6.   

4 个答案:

答案 0 :(得分:2)

控制器必须查找/加载与请求匹配的业务对象并执行它。 Strategy Pattern在此有用。该业务对象必须获得DAO和模型的句柄才能完成该过程。

E.g。 (伪,在前端控制器servlet中)

public void process(request, response) {
    View view = new View(request, response);
    Action action = ActionFactory.getAction(request);
    if (action != null) action.execute(view);
    view.navigate();
}

答案 1 :(得分:1)

把它放在控制器中。控制器就像是应用程序的核心,其中编写了大部分逻辑。

将业务逻辑放在模型级别是不好的。

答案 2 :(得分:0)

答案 3 :(得分:0)

典型的分层是这样的:

  • 控制器
  • 模型
    • 业务层
    • 数据层(DAO)

模型将包含业务层和数据层,同时保持这些层松散耦合到有意义的程度。控制器将访问模型,在大多数情况下,模型应该是业务层。控制器最好不能直接访问数据层,但在较小的应用程序中它会发生很多。