什么是MVC模式中的模型

时间:2012-04-27 06:41:27

标签: model-view-controller

我正在创建一个应用程序,我正在使用MVC模式。为此,我将我的视图视为jsps,控制器作为servlet,模型作为DAO对象。我怀疑我将DAO对象视为模型是对还是错?

2 个答案:

答案 0 :(得分:4)

模型不是DAO。它是一个包含所有域逻辑的层,主要由两种类型的元素组成,具有以下职责:

  • 业务逻辑
  • 数据访问(通常实现为DataMapper

我们的想法是,业务逻辑永远不应该依赖于存储机制。在创建发票时,域对象不应该关心,如果数据来自SQL数据库,MSWord文档,远程REST API或仅仅是模拟数据。

您可能会发现这篇文章很有趣且相关:GUI Architectures

答案 1 :(得分:2)

MVC中的模型是业务逻辑所在的位置。

查看the sun Java EE pattern definitions,我们看到DAO封装了持久性机制,并由业务对象使用。因此,我不认为DAO具有任何业务逻辑。

在简单系统中,一些数据库表或实现业务逻辑的表 数据库(存储过程,参照完整性检查,触发器)然后DAO实际上是业务逻辑面前的一个外观,所以它们看起来像模型。因此,在一些介绍性材料中,您可能会将DAO视为模型中唯一的Java表达式。

当我们选择在Java中实现我们的业务逻辑时,它将位于DAO之上的一层,例如使用DAO的Session Beans,在我看来,它是会话Bean或等效的模型。

所以问问自己:业务逻辑在哪里?这就是模特真正的目标。