架构学习(一):浅析Java中的Model1和Model2
来源:互联网 发布:seo白帽优化 编辑:程序博客网 时间:2024/05/16 11:05
Java的动态Web编程,经历了所谓的Model1和Model 2时代。
(动态Web编程技术的发展历史)
Model1
JSP页面是中心
JSP页面接收处理客户端请求,对请求处理后直接做出响应,这样就在JSP页面中同时实现了业务逻辑和流程控制。
上图中的“业务逻辑”对应下图的JavaBean,完成业务处理和访问数据库。
优点和不足
实现比较简单,适用于快速开发小规模项目。
难和简单都是相对的,如果采用Model2的话至少得多一个Servlet类。
但JSP页面身兼View和Controller两种角色,将控制逻辑和表现逻辑混杂在一起,从而导致代码的重用性非常低,增加了应用的扩展性和维护的难度。
也就是说职责过多,耦合度高,很难适应变化。比如老式显卡都是集成在主板上的,显卡要是坏了,那就换主机吧,悲剧。
Model2
职责划分,简化JSP工作量
model2在model1基础上,对jsp功能进行了职责划分。
Servlet的加入,从而构成了MVC的实现。
- Servlet做控制器(Controler):
- 取得参数
- 调用业务逻辑
- 转向页面
- 业务逻辑做模型(Model):
- 处理业务逻辑
- 保存数据状态
- JSP做视图(View),渲染页面。
上图中的“业务逻辑”对应下图的JavaBean,完成业务处理和访问数据库。
继续职责划分,加入三层思想
将业务逻辑模型(Model)进一步划分成业务逻辑和持久化数据
Servlet/JSP对应三层中的UI(显示层)
业务逻辑对应BLL(业务逻辑层)
持久化逻辑对应DAL(数据访问层)
优点和不足
职责划分的更细了,就像现在的显卡大都是独立的。如果显卡坏了或者要升级,换一个相同规格的就好了。
但带来好处的同时,工作量大了,还没开始干活就得先制定好规范,比如主板和显卡的共同的接口是MMDK#**#8型号,在没生产之前,就得花费时间商量出一套公认的准则。
小结
如果项目较小,需求较稳定,不准备升级,可以采用Model1模型,能够低成本,较快速的开发。
如果项目较大,需求不定,以后还可能升级,可以采用Model2模型,虽然成本较高,工作量较大,磨刀不误砍柴工,应对变化,未雨绸缪才是。
各有所长,在适当条件下做出适当的选择就是最优的。
- 架构学习(一):浅析Java中的Model1和Model2
- 浅析Java开发中的Model1和Model2
- 浅析Java开发中的Model1和Model2
- 【Java架构学习】Model1和Model2讨论
- java中的model1和model2比较
- JAVA开发中的Model1和Model2模型
- 浅析Java开发模式—Model1、Model2和三层
- 【知了堂学习笔记】Model1、Model2和MVC架构模式
- Java中Model1和Model2
- Java Web学习(20): Java开发中的Model1与Model2
- java开发中的Model1和Model2的对比
- 走进Java(四)JSP的Model1和Model2
- Java开发中的Model1与Model2
- 【知识积累】Model1和Model2学习
- Java Web的Model1和Model2简介
- Java Web---Model1&Model2
- Model1、Model2和三层
- Model1和Model2区别
- 关于键盘触发事件和屏幕触发事件的问题
- QQ2013 协议分析
- 通配符,asp乱码,以及accss没有权限读取
- windows mobile 6.3 C# VS2008 FTP的使用
- bash shell实现并发多进程操作
- 架构学习(一):浅析Java中的Model1和Model2
- 吃货必须知道的经验,收藏备用了!太全面了!
- Socket套接字
- 关于2009_CVPR_Linear spatial pyramid matching using sparse coding for image classification
- Android APK反编译详解(附图)
- http://poj.org/problem?id=2481 树状数组+优先队列
- 调试麻烦无比的JavaScript代码,快速确定问题的办法
- hdu Max Sum 1003
- 解码顺序与显示顺序