早期程序员在编写代码时是没有一个规范的,系统的业务逻辑和数据库的访问时混合在一起的,不仅增加了大量的重复工作,而且增加了后期维护的难度。

后来,人们逐渐发现某些通用的功能是可以单独的封装起来的,这样就可以减少代码量。

再后来,逐渐产生了三层架构模型,即表现层,业务逻辑层,数据层。表现层即系统的界面,控制系统展示给用户的一些东西;数据层主要实现与数据库的交互,比如数据的增删改查;业务逻辑层处于数据访问层与表示层中间,起到了数据交换中承上启下的作用,主要用于加工处理数据。通过分层,削弱了个功能层之间的耦合性,利于代码的后期维护。



      但是,即使是这样,人们仍然觉得代码间的耦合性太大,表现层和业务逻辑层之间的联系过于紧密,于是在表现层和业务逻辑层之间加了一层控制层,通过判断表现层传来的请求(即用户的请求)来决定调用哪一个业务处理逻辑。这样逐渐演化出了MVC框架。



     MVC,即模型(Model)---视图(View)---控制器(Controller),尽管MVC也是三层,但并不是与三层架构模型一一对应的。典型的MVC框架即JSP+Servlet+javaBean,Jsp即视图,servlet为控制器,javaBean为模型。而在实际应用中,我们会将Model层再进行进一步的细化,可以分为业务处理层和数据访问层。



     三层架构模型侧重于整体的解耦,即实现“高内聚,低耦合”;而MVC框架主要侧重于Web系统的解耦,即侧重jsp与servlet实现的解耦。



     单单就Spring MVC来说,它通过XML文件实现View,Controller,Model之间的联系,通过依赖注入进一步降低了代码之间的耦合度。

版权声明:本文为博主原创文章,未经博主允许不得转载。

最新文章

  1. 用C#实现封装
  2. shell导出mysql部分数据
  3. Unix目录结构的来历(转)
  4. Modify textures at runtime
  5. css中的浮动以及清除浮动
  6. 2.2 节的练习--Compiler principles, technologys, &tools
  7. 如何用ssh挂载远程目录
  8. HTTPS是如何保证连接安全:每位Web开发者都应知道的
  9. sql建立跨服务器链接
  10. cxf2.7.10与Spring3.0.5集成时报错如下
  11. ORACLE告警日志
  12. CSS 3 属性学习 —— 2. RGBA
  13. javaTemplates-学习笔记三
  14. AES加密 C++调用Crypto++加密库 样例
  15. 【JUnit4.10来源分析】0导航
  16. One day one cf,Keep Wa away from me.
  17. idea live template高级知识, 进阶(给方法,类,js方法添加注释)
  18. 例10-11 uva11181
  19. wholesale custom weighted blankets / travel weighted blankets
  20. pytest 2.测试用例setup和teardown

热门文章

  1. BT雷人的程序语言
  2. 面试之路(3)-详解MVC,MVP,MVVM
  3. 工作中常用Git指令操作
  4. Java小技巧输出26个英文字母
  5. golang实现文字云算法
  6. 爬虫Scrapy框架运用----房天下二手房数据采集
  7. C#逻辑面试题汇总【不断更新中】
  8. ExtJs radiogroup form.loadRecord方法无法赋值正确解决办法
  9. C# SqlBulkCopy数据批量入库
  10. Naive RNN vs LSTM vs GRU