以下为转载内容: 地址

MVC与三层架构的异同点

首先先解释一下MVC。

  • V即View.是视图的意思。
  • C即Controler.是控制器的意思。
  • M即Model,是模型的意思。

这三个里.最不容易理解的应该是Model.就是什么是Model,而为什么叫Model。我先不说为什么叫Model,先解释Controler。

Controller是控制器的意思,所谓控制器,就是将用户请求转发给模型层,经过处理后把结果返回到界面展现的一个中间层,那么Controler到底管什么工作呢?先不说.先来看下在Java Web中这三个层一般的定义,一般在Java Web里,JSP充当V,Servlet充当C,JavaBean充当M,这里的Servlet管什么工作呢?接受输入,转到Model层去处理,处理结果保存后转发到JSP,然后展现数据。所以它的功能就是控制器的基本功能,它就管转发,在V和M之间转来转去。

再来说说M,即Model,在Java Web里说的是JavaBean,我认识的很多人都把JavaBean误认为是实体类,其实JavaBean有比实体类更丰富的定义,在JavaBean中除了其属性和字段,还可以有行为及其事件,JavaBean可以理解为普通Java对象。Java普通对象,就是符合Java规范的所有对象,这和实体类完全是两回事。所以,我认为在MVC中。业务逻辑和数据访问应该放在Model层,也就是V负责展示数据,Controler除了转发不做业务逻辑。真正的逻辑事务,数据访问,甚至算法都放到Model去。

三层架构

三层其实很好理解,界面(UI)业务(BLL)数据访问(DAL),就这三个,从字面都可以理解出它们的意思。

三层架构 和 MVC的区别。

在三层架构中没有定义Controler的概念。这是我认为最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。

当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是已实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。不一样的概念。虽然名字一样。

最新文章

  1. 错误 "sgen.exe" exited with code 1.解决方法(转)
  2. 二:shell之bash变量
  3. 北京地铁站点遍历最少经站次数问题普遍意义上是一个NP问题,目前不存在多项式时间算法能够解决该问题
  4. 写在开始编写Java之前(1)——Java的跨平台性
  5. 最新QQ强制聊天代码,同时可判断好友关系
  6. Byte History
  7. 【JOJO】真男人-坚不可摧
  8. 数据库连接工具类——包含取得连接和关闭资源 ConnUtil.java
  9. python自动开发之第十二天
  10. 【Java】对Web Service的理解
  11. cocos2d-x3.0rc 版 设置模拟器窗体大小
  12. 【D3】cluster layout
  13. httpClient解决post请求重定向的问题
  14. pygame-KidsCanCode系列jumpy-part9-使用spritesheet
  15. Nginx之编译安装的nginx加入systemctl
  16. WIN7/XP用注册表关联指定后缀名和打开程序(手动【图文】和C编程两种实现)
  17. git log查看某一个分支的提交
  18. 分类Category的概念和使用流程
  19. Visual Studio进行负载测试,RIG和负载测试术语- Part II
  20. centos关闭selinux

热门文章

  1. drop表后仍占表空间解决办法
  2. 数据库连接池原理 与实现(动脑学院Jack老师课后自己的练习有感)
  3. 在strust2 框架下,前端APP传过来的中文数据乱码问题
  4. C# EF增删改查
  5. 【转载】Mysql 查看连接数,状态
  6. Cent0S 升级Python会带来的问题
  7. Go并发控制之sync.WaitGroup
  8. 手机APP开发:学JAVA转安卓APP开发是不是很容易?
  9. Python 的安装与配置(Windows)
  10. Jquery,jquery-cookie.js 做的点击记住用户名和密码!