MVC设计模式在网站中的应用
MVC设计模式在网站中的应用
以淘宝的购物车为例
一、结合六个基本质量属性
可修改性
采用MVC设计模式的时候,可以将视图、模型、控制器分析,将用户动作、数据表示、应用数据分离开来,如果用户需要以不同的视图来展示,只需要修改视图中的代码即可,对于模型和控制器的代码,则不需要做改动,即可满足要求,使得对代码的修改非常方便。
易用性
用户可以直接在商品展示界面中将商品添加进购物车,直接点开购物车就可以看到已经添加的商品;删除某一件商品时,也可以直接在商品的后面点击删除,确认之后,即可删除。
安全性
实行对不同角色的不同权限的管理,比如买家账号和卖家账号,登录之后,对应的不同权限的操作。
可用性
淘宝实现7*24的可用性,如果某一个环节出了问题,使用MVC设计模式也可以快速的进行修复。
二、MVC设计模式具体在淘宝购物车当中的应用。
每个层大概的负责的职责,以及之间的关系。


假如以超市为例,进行购物流程,大概流程是:取得空购物篮—向购物篮中增减商品—结账,我们对这个流程进行分析可以发现,用户需要随时了解的信息是放入购物篮里的商品的品名、数量以及价格,在挑选商品阶段关注的是商品的品名、单价和数量,在结帐时关注的是商品的总计价格,这些信息与购物篮中的物品有直接相关。伴随着这个流程的是空购物篮的取得、购物篮内商品的增减、购物篮在结帐后被清空这样几个状态。可以发现,购物篮是整个购物交易过程中用户关注信息和购物流程状态变化的重要组成部分。我们可以用模型来表示购物篮,这个类设计中应包含商品信息、价格和数量属性,同时还要定义附加在属性上的商品加入、删除、价格计算等方法。用户的购物动作导向触发不同的方法以确定购物篮模型的不同的状态,而购物篮模型的状态变化应该能及时反映到用户界面,透过用户界面,可以了解到购物篮的信息,同时发出用户的动作指令。我们可以采用多个不同的类,以视图的方式来定义用户界面,以控制器的方式定义用户购物流程控制。
利用MVC设计模式,可以方便地设计出用于购物过程的相应的类和对象,并以比较合理的方式将它们组织起来。在电子商务系统的研究中,实现系统代码时,我们采用JSP实现用户视图,JSP和JavaBean作为模型,Servlet实现控制器,可以进行实现。
在浏览器的jsp页面中显示商品的信息,用户在界面中进行添加商品操作之后,到达servlet控制器,然后选择相应的购物篮模型,可能会与数据库进行交互,完成之后,再在购物车页面中进行显示出来。
MVC设计模式在网站中的应用的更多相关文章
- MVC设计模式(持续更新中)
MVC设计模式--->英文全称为: model(模型) View (视图) Controller(控制) MVC是一种设计思想.这种思想强调实现模型(Model).视图(View)和控制 ...
- Android入门(五):程序架构——MVC设计模式在Android中的应用
刚刚接触编程的的人,可能会这样认为:只要代码写完了能够跑起来就算完工了.如果只是写一个小程序,“能够跑起来”这样的标准也就可以了,但是如果你是在公司进行程序的开发,那么仅仅让程序成功的跑起来是不行的, ...
- Servlet开发-----基础及MVC设计模式
一.Servlet介绍 Servlet本身只是普通的Java类,只有当容器为他创建了ServletConfig和ServletContext时才成为了一个Servlet: Servlet简单的 ...
- Java Web开发中MVC设计模式简介
一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...
- iOS中MVC设计模式
在组织大型项目的代码文件时,我们常用MVC的思想.MVC的概念讲起来非常简单,就和对象(object)一样.但是理解和应用起来却非常困难.今天我们就简单总结一下MVC设计理念. MVC(Model V ...
- asp.net MVC设计模式中使用iTextSharp实现html字符串生成PDF文件
因个人需求,需要将html格式转换成PDF并加上水印图片.于是乎第一次接触这种需求的小菜鸟博主我,在某度搜索引擎上不断的查阅关键字资料.踩坑,终于有了一个相应的解决方案.以下是解决步骤,记录下来方便以 ...
- 针对Linux ASP.NET MVC网站中 httpHandlers配置无效的解决方案
近期有Linux ASP.NET用户反映,在MVC网站的Web.config中添加 httpHandlers 配置用于处理自定义类型,但是在运行中并没有产生预期的效果,服务器返回了404(找不到网页) ...
- [译]MVC网站教程(四):MVC4网站中集成jqGrid表格插件(系列完结)
目录 1. 介绍 2. 软件环境 3. 在运行示例代码之前(源代码 + 示例登陆帐号) 4. jqGrid和AJAX 5. GridSettings 6. ...
- 谈谈JAVA工程狮面试中经常遇到的面试题目------什么是MVC设计模式
作为一名java工程狮,大家肯定经历过很多面试,但每次几乎都会被问到什么是MVC设计模式,你是怎么理解MVC的类似这样的一系列关于MVC的问题. [出现频率] [关键考点] MVC的含义 MVC的结构 ...
随机推荐
- swagger 常用注解说明
本内容引用自:https://blog.csdn.net/u014231523/article/details/76522486 常用注解: - @Api()用于类: 表示标识这个类是swagger的 ...
- NFS部署教程
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可 ...
- oracle创建用户、创建表空间、授权、建表
2.然后我就可以来创建用户了. create user zzg identified by zzg123; 3.创建好用户我们接着就可以修改用户的密码. alter user zzg identifi ...
- 菜鸟入门【ASP.NET Core】8:Middleware管道介绍、自己动手构建RequestDelegate管道
中间件:是汇集到以处理请求和响应的一个应用程序管道的软件. 每个组件: 可以选择是否要将请求传递到管道中的下一个组件. 之前和之后调用管道中的下一个组件,可以执行工作. 使用请求委托来生成请求管道. ...
- [android] 手机卫士项目
按照模块组织代码的包结构:各个模块之间的业务是独立的 风行网 ----播放器 com.funshion.android.player ----下载模块 com.funshion.android.dow ...
- slf4j日志的使用
slf4j(simple logging facade for Java)是Java的简单的日志门面,它不是具体的日志解决方案,它只服务于各种各样slf4j-logo的日志系统.这里的slf4j-lo ...
- System.arraycopy 怎么使用的?
前言:看 ArrayList 的源码,发现 remove 方法主要依赖了 System.arraycopy() 方法实现的.所以需要了解一下这个方法如何使用.转载请注明出处:https://www.c ...
- javascript基于对象的弹出框封装
先睹为快,移动端:戳这里,打开页面后点击投票查看效果.PC端测试直接切换body的overflow属性:hidden和auto一样可以,比下面相对简化,又有人说这样偶尔不行..如果你知道优缺点欢迎给出 ...
- Flask 中的 特殊装饰器before_request/after_request
before_request :在请求收到之前绑定一个函数做一些事情. after_request: 每一个请求之后绑定一个函数,如果请求没有异常. teardown_request: 每一个请求之后 ...
- 禁用 Gnome Shell 默认的 Ubuntu Dock 和 Ubuntu AppIndicators 扩展
以前折腾的时候禁用过,现在已经忘记目录了,结果今天手贱把系统从 18.04 升级到了 18.10 ,很多东西都要重新搞过,而且用惯了 mac 已经不熟悉 linux 上瞎折腾的那一套了,简直坑爹.. ...