2012-04-27 147 views
0

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

回答

2

MVC中的模型就是业务逻辑所在的地方。

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

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

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

所以问问自己:业务逻辑在哪里?这就是模型真正的地方。

4

模型不是DAO。这是一个层,它包含了所有的域的逻辑,并且从两种类型的元素大多组成,具有下列职责:

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

这个想法是,商业逻辑不应该与存储机制联系在一起。在创建发票时,如果数据来自SQL数据库,MSWord文档,远程REST API或只是模拟数据,则该域对象不应该在意。

您可能会觉得这篇文章有趣且相关:GUI Architectures