模型和DAO应该如何互动?我正在组建一个简单的登录模块,我不确定在哪里放置“业务逻辑”。如果我将逻辑与数据放在模型中,我将如何访问逻辑?
目前,我有:
- 接收表单数据的控制器
- 模型,它是db表的简单反映
- 使用hibernate的 DAO 执行简单的选择查询,基于 表格参数由 控制器。
醇>
答案 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)
您可能需要查看Best designs for breaking down business logic and data layer when they seem to overlap?
的部分答案答案 3 :(得分:0)
典型的分层是这样的:
模型将包含业务层和数据层,同时保持这些层松散耦合到有意义的程度。控制器将访问模型,在大多数情况下,模型应该是业务层。控制器最好不能直接访问数据层,但在较小的应用程序中它会发生很多。