首页 > 代码库 > 三层构架 和 MVC 是什么?

三层构架 和 MVC 是什么?

作者:肖继潮
链接:https://www.zhihu.com/question/24291079/answer/27339010
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

企业应用开发时,经常采用三层架构分层:表示层、业务层、持久层

  • 表示层负责接收请求、转发请求、显示数据等;
  • 业务层负责组织业务逻辑;
  • 持久层负责持久化业务对象。

这三个分层,每一层都有不同的模式,就是架构模式。表示层最常用的架构模式就是MVC。因此,MVC是三层架构中表示层最常用的架构模式。

建议阅读《企业应用架构模式》《领域驱动设计》《Pojos in action》《J2EE 核心模式》等经典书籍,不要随意发明名词。

 

MVC - 模型、视图、控制器。

总有人来个什么模型层、视图层、控制器层,哪里来的这么多层?是不是还要来个Service层、DAO层、DTO 层?

XX层,英文是tier(物理上)、layer(逻辑上)。既是层,个人理解就有上下关系。

模型、视图、控制器有上下关系?否则 依赖倒转原则(高层不依赖于低层,二者都依赖于抽象)指的是啥?

 

三层架构,每层都有自己的模式。模式就是套路(杨氏太极拳十八式就是套路),每一层都有自己的套路,就是所谓架构模式

  • 表示层最常用的模式就是MVC ,MVC就是表示层的一种架构模式。
  • 业务层的架构模式有事务脚本模式、领域模型模式、CQRS等(另一种说法是贫血、失血、充血、胀血...)。
  • 持久层的架构模式有入口模式、数据映射器模式等。

一般来说,框架 > 架构模式> 设计模式 > 设计原则。打个比方,

  • Hibernate是一个持久层框架,是数据映射器模式的具体实现,实现时用到了工厂模式等很多设计模式,体现了什么依赖倒转原则、开闭原则、里氏替换原则等设计原则
  • AngularJS是一个客户端MVC框架,是 MVC架构模式的一种实现,实现时用到 XXXX设计模式,体现了 XXXX等设计原则。
  • Struts、MVC是表示层框架。。。。。诸如此类。

 

三层构架 和 MVC 是什么?