如果我正在使用 MVC 模式,我正在创建一个应用程序。为此,我将我的视图视为 jsps,将控制器视为 servlet,将模型视为 DAO 对象。我怀疑我将 DAO 对象视为模型是对还是错?
问问题
594 次
2 回答
4
模型不是 DAO。它是一个包含所有领域逻辑的层,主要由两种类型的元素组成,具有以下职责:
- 商业逻辑
- 数据访问(通常实现为DataMapper)
这个想法是业务逻辑永远不应该与存储机制绑定。当您创建发票时,域对象不应该关心数据来自 SQL 数据库、MSWord 文档、远程 REST API 还是只是模拟数据。
您可能会发现这篇文章有趣且相关:GUI 架构。
于 2012-04-27T07:04:48.073 回答
2
MVC 中的模型是业务逻辑所在。
查看sun Java EE 模式定义,我们看到 DAO 封装了持久性机制并由业务对象使用。因此,我不认为 DAO 自然具有任何业务逻辑。
在简单的系统中,一些数据库表,或者业务逻辑在数据库中实现的那些(存储过程、引用完整性检查、触发器),那么 DAO 实际上是业务逻辑前面的一个门面,所以它们看起来很像模型。因此,在一些介绍性材料中,您可能会看到 DAO 几乎是模型的唯一 Java 表达式。
当我们选择在 Java 中实现我们的业务逻辑时,它将位于 DAO 之上的一层,例如使用 DAO 的会话 Bean,在我看来,它是会话 Bean 或等效的模型。
所以问问自己:业务逻辑在哪里?这就是模型的真正所在。
于 2012-04-27T07:01:53.187 回答