请选择 进入手机版 | 继续访问电脑版
汤氏会社 排行榜
开启辅助访问 欢迎投稿

QQ登录

只需一步,快速开始

扫一扫,访问微社区

加入汤氏会社 找回密码

汤氏会社

查看: 3365|回复: 0

浅析Java中的Model1和Model2,孰优孰劣-汤长海

[复制链接]
发表于 2013-4-22 11:15:18 | 显示全部楼层 |阅读模式
浅析Java中的Model1和Model2,孰优孰劣  --汤长海

Java的动态Web编程,经历了所谓的Model1和Model 2时代。       (动态Web编程技术的发展历史)Model1JSP页面是中心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模型,虽然成本较高,工作量较大,磨刀不误砍柴工,应对变化,未雨绸缪才是。 各有所长,在适当条件下做出适当的选择就是最优的。

您需要登录后才可以回帖 登录 | 加入汤氏会社

本版积分规则

申请友链|小黑屋|无图浏览|手机版|排行榜|隐私声明|网站地图|网站介绍|TangShi  |网站地图  

GMT+8, 2019-11-17 17:26 , Processed in 0.119343 second(s), 24 queries , Eaccelerator On.

Powered by Discuz! X3.2

© 2011-2013 Tangshi.org

快速回复 返回顶部 返回列表