使用N层架构的MVC

时间:2016-07-03 13:51:02

标签: model-view-controller n-tier-architecture

我一直在文章和问题之间跳跃,但我似乎无法找到我想要的信息。

当我开始学习MVC时,教程和文章指出:
*模型:是您的业务逻辑的所在 *控制器:是数据访问和处理请求/响应发生的地方。

我一直在使用MVC一段时间了,我想将一个旧的简单项目迁移到MVC。在项目中,我有一个业务和数据访问层。 在阅读了N-Tier MVC架构后,我的理解发生了变化。

我通常认为是业务领域的模型现在已根据视图更改为更多的演示文稿。模型反映了商业实体,但它充当了它的另一层。

所以我的问题如下:假设我有一个MVC项目,我有另外两个项目,业务和数据访问。这种关系是否正确?

*模型,大多数具有与其相应业务实体相同的属性 *控制器将调用DataAccess-Layer来检索数据,数据将作为业务对象返回,并将其映射到模型中,然后返回到视图中。

2 个答案:

答案 0 :(得分:0)

  1. 模型并不总是与业务实体相对应。因为MVC中的模型用于反映将被发送到视图的实体。所以它们可能比域业务实体稍微有点狡猾。将您的域模型映射到mvc模型是正确的。
  2. 第二声明我同意100%。

答案 1 :(得分:0)

  

这种关系是否合适?

     

我的答案取决于您的项目规模和团队规模,但让我向您解释我的项目架构。

  • MVC:表示层,它是应用程序的启动项目。
  • Common:这是一个包含一组核心类的类库,例如助手,基类,......这个项目被所有其他项目引用。
  • 存储库:为了读取和写入数据库,我创建了一个项目并将其命名为存储库。实际上,我已经用存储库模式实现了一个工作单元。实现这些模式有助于将应用程序与数据存储中的更改隔离开来。
  • 测试:是表示层的测试项目。

希望这会对你有所帮助。