几种网站开发模型- Model1、Model2、三层

  以目前自己的理解,所接触到的面向对象思想中最重要的是“抽象”,软件设计目标中最重要的是“可以应对需求的变化(增加或更改)”。

  思考一下,无论是“分层”思想,还是“设计模式”思想,还是“泛型”思想等,应该可以说最终的目的都是为了“可以应对需求的变化”,且都充盈着“抽象”。

  分层是为了使得“大变小、繁变易”,而针对不同的现实情况,它可以演化出千变万化的原型。分层是一种思想,而Model1、Model2、三层就是分层思想演化出的(经验总结出的)最常用的几种原型而已。它们的真身都是“分层思想”。

  下面对以上三种开发模型进行简介:

Model1

  

  这种模型是我们初学者最常采用的,因为它建的类文件少,开发比较随意,JSP中既可以写HTML又可以写服务器端代码,所以初学者很青睐这种模型。但这种模型将“业务层”与“表现层”混到了一起,都写到了JSP中,从而使得JSP职责过重。由于“表现”与“业务”两层相混合,所以大大削弱了它的“应对需求变化”能力。这也违背了SUN推出JSP最初的目的。但如果一个项目很小,且需求稳定,就很适合这种架构模型。

Model2(MVC)

   

上面提到了Model1设计模型中JSP职责过重,违背了SUN最初推出JSP的目的。根据SUN自己的推荐,JSP中应该仅仅存放与“显示层”有关的东西,也就是只放输出HTML网页的部分。而所有的数据计算,数据分析,数据库连接处理等“业务层”的东西都不是JSP的职责。于是Model2模型就解决了这个问题,所有“业务层”相关的东西都放到了Servlet中,JSP就只做渲染页面的单一职能。

Model2模型蕴含了大名鼎鼎的MVC的应用,Model层包含了业务逻辑与持久数据,由普通的java类充当;View层仅作显示,由JSP充当;Controller层取表单数据,整合业务逻辑,转向view页面,由Servlet充当。

Model2在Model1的基础上分离了控制,使得JSP与Servlet各司其职。从而,对比Model1它可以较好地应对需求的变化。这种模型较适合大型项目的开发,因为大型项目需求变更较多,更需要应对需求的增加、修改等。

三层

   

  上面是非常经典的三层架构,从图上可知,它从Model2模型中又抽出了一层“持久化逻辑”。至于原因,很简单,因为Model2模型将“数据访问”与“业务逻辑”混到了一起,这样导致两者之间耦合无法解除,也就意味着,无法对“数据访问”的逻辑进行抽象,所以“数据访问”逻辑的改变(比如更换数据库)必将引起“业务逻辑”的改变,而现实中“数据访问”逻辑又是很容易改变的地方,所以要将其分离,将“数据访问”的职责单独抽到一层“持久化逻辑”中。这样就可以对每个易改变的层进行抽象,从而从依赖于实现转到了依赖于抽象,从而可以更好的应对需求的变化。

  层与层之间的依赖关系如下:

   

  每层之间有自上而下地单项依赖关系。划分原则是,将易变化的点抽出来单独做一层,以便于可以对变化点进行抽象,从而从依赖实现转到依赖抽象,从而可以达到“应对需求变化“的目的。它是较正规的一种开发模型。

总结

  要知道,想要应对需求变化就要对变化点进行抽象,而想要进行抽象就要先将变化点提取出来(即分层)。

  Model1、Model2、三层架构是“分层思想” 结合”经验“所得出的常用的三种设计模型,用以应对现实生活中绝大多数开发场景。分完层我们就可以使用”抽象“的手段,达到”应对需求变化“的目的。

时间: 2024-12-19 05:20:15

几种网站开发模型- Model1、Model2、三层的相关文章

Java项目(4)——探究两种开发模型的异同-Model1与Model2

弱弱的说一句: jsp在web服务器上,这一点应该没有疑问吧? 首先很俗套地看下两个模型. Model1就是实现,实现就行,系统简单,谈不上架构,正如简单工厂并不算在23个常用设计模式之列一样.Model1的前身是 所有的业务逻辑都写在Jsp里,和简单工厂没什么区别,从面向对象的角度来说就是职责不单一,不符合开闭原则.Model1将业务逻辑分离出来,一定程度上减轻了jsp的职责.但是,我们可以看到jsp负责取得页面参数,调用业务逻辑,渲染页面等,这又像我们很早之前用三层实现的机房收费系统,U层负

三种扩展 Office 软件功能的开发模型对比 – Office Add-In Model, VBA 和 VSTO

当 Office 用户需要针对文档自定义新功能时,可以求助于 VBA 或者 VSTO 两种方式.Office 2013 富客户端以后,微软为 Office 平台上的开发者提供了一种新模型 --- Office Add-In Model,它允许在 Office 应用程序中创建一片区域,并在这片区域中展现网页与文档的交互.开发者可以将高度定制化的 Web 应用或服务集成在 Office 中,使之在整个 Office 平台上可用. 应用程序实际上并没有安装在运行 Office 的计算机上,而是托管在开

6种有效的开发模型(转)

叶亚明(Eric Ye),携程首席架构师,负责移动.Web.呼叫中心等部门的研发工作,领导开发的业务和领域包括酒店.机票.商务旅游.开放API.全球站.用户体验研究.他从过去十年的电子商务变革中,总结出六种有效的编程模型,目前被广泛应用于携程内部的产品研发过程中.此外,他还致力于升级携程网架构并创建新一代框架,以提高可扩展性和可用性. 在加入携程之前,叶亚明是eBay公司平台工程的总监,在升级eBay网站的架构和平台方面作为技术专家发挥了重要作用.他在美国加州硅谷拥有超过超过15年的互联网工作经

开发模型

系统开发模型: 即,系统架构,是指整合应用系统程序大的结构.经常提到的系统结构有两种:三层架构 和 MVC. 这两种架构,既有区别,又有联系.但是这两种结构的使用,均是为了降低系统模块间的耦合度. (便于开发时的分组) 传统的JavaWeb 项目的系统开发模型大体经历了四个阶段: 纯JSP ---> JSP+JavaBean 的Model1 --->MVC的Model2   ---> MVC+三层架构 1. 纯JSP “纯 JSP”开发模型中,将所有的业务处理.数据显示功能都交由JSP页

asp.net 网站开发流程总结

由于这学期要做asp.net的网站开发,导师让我们在前期做详细的计划说明,时间安排.由于网站开发流程不知道,以及需要学什么指示都是盲懂,所以计划安排需在了解大致流程之后才能做出来,一下是询问同学和在网上查阅,总结出的粗略的网站开发流程以及一些所需要学的知识.可能存在很多漏洞和缺陷,如大家看到了也希望大家指导..... 总结一 asp.net建网站的主要步骤 1. 首先是需求分析了,分析你打算做哪些功能,涉及哪些因素以及他们的关联关系等等. 2. 数据库设计,根据功能定义出可能的数据对象,设计出数

MVC5 网站开发之八 栏目功能 添加、修改和删除

本次实现栏目的浏览.添加.修改和删除. 栏目一共有三种类型. 常规栏目-可以添加子栏目,也可以添加内容模型.当不选择内容模型时,不能添加内容. 单页栏目-栏目只有一个页面,可以设置视图. 链接栏目-栏目为一个链接,点击后转到相应链接. 在视图中原本栏目的树形显示插件使用Bootstrap TreeView 1.2.0(MVC5 网站开发之六 管理员 2.添加.删除.重置密码.修改密码.列表浏览),后来使用中发现zTree使用起来更习惯,所以更换成zTree了. 目录 MVC5网站开发之一 总体概

网站开发_从基础做起1

推荐一个网站:标准之路,讲解网站开发确实很详细,带有实例边讲边实践,很是惊喜 就本人的经验来说,网站开发基础可以去w3School中学习html以及css的基本语法,然后参考上面提到网站的DIV+CSS教程 一步一步搭建起来自己的第一个网页,进步还是会很快的. 以下为学习中记录下来的笔记,常常记录,打好基础. 1.文档类型 doctype 它的目的是要告诉标准通用标记语言解析器,它应该使用什么样的文档类型定义(DTD)来解析文档.删除后可能引起某些样式表失效或其它意想不到的问题. XHTML 定

主流网站开发语言

主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和Visual BASIC类似,可以像SSI(Server Side Include)那样把后台脚本代码内嵌到HTML页面中.虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题.目前在微软的 .net 战略中新推出的ASP.net 借鉴了Java技术的优点,使用C Sharp (C#) 语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点.但是,使用ASP/ASP.n

流媒体网站开发技术浅谈

流媒体网站开发技术浅谈(2012-02) 2012-03-02    新闻来源:武汉广电网 张方东 (黄陂区广播影视局事业技术科) 摘 要:随着有线和无线网络宽带的高速发展,人们不再满足于因特网中仅有的文字.图片等简单信息,而越来越希望看到更直观.更丰富的影视节目,流媒体网站因此应运而生.本文从流媒体概念.流媒体格式.流媒体文件制作.流媒体文件传输.流媒体文件发布及流媒体网站部署等方面对开发流媒体网站作了详细阐述. 关键词:流媒体 网站开发 部署 技术 1.概述 在网络上传输多媒体有下载和流式传