MVC设计模式在网站中的应用

以淘宝的购物车为例

一、结合六个基本质量属性

可修改性

采用MVC设计模式的时候,可以将视图、模型、控制器分析,将用户动作、数据表示、应用数据分离开来,如果用户需要以不同的视图来展示,只需要修改视图中的代码即可,对于模型和控制器的代码,则不需要做改动,即可满足要求,使得对代码的修改非常方便。

易用性

用户可以直接在商品展示界面中将商品添加进购物车,直接点开购物车就可以看到已经添加的商品;删除某一件商品时,也可以直接在商品的后面点击删除,确认之后,即可删除。

安全性

实行对不同角色的不同权限的管理,比如买家账号和卖家账号,登录之后,对应的不同权限的操作。

可用性

淘宝实现7*24的可用性,如果某一个环节出了问题,使用MVC设计模式也可以快速的进行修复。

二、MVC设计模式具体在淘宝购物车当中的应用。

每个层大概的负责的职责,以及之间的关系。

假如以超市为例,进行购物流程,大概流程是:取得空购物篮—向购物篮中增减商品—结账,我们对这个流程进行分析可以发现,用户需要随时了解的信息是放入购物篮里的商品的品名、数量以及价格,在挑选商品阶段关注的是商品的品名、单价和数量,在结帐时关注的是商品的总计价格,这些信息与购物篮中的物品有直接相关。伴随着这个流程的是空购物篮的取得、购物篮内商品的增减、购物篮在结帐后被清空这样几个状态。可以发现,购物篮是整个购物交易过程中用户关注信息和购物流程状态变化的重要组成部分。我们可以用模型来表示购物篮,这个类设计中应包含商品信息、价格和数量属性,同时还要定义附加在属性上的商品加入、删除、价格计算等方法。用户的购物动作导向触发不同的方法以确定购物篮模型的不同的状态,而购物篮模型的状态变化应该能及时反映到用户界面,透过用户界面,可以了解到购物篮的信息,同时发出用户的动作指令。我们可以采用多个不同的类,以视图的方式来定义用户界面,以控制器的方式定义用户购物流程控制。

利用MVC设计模式,可以方便地设计出用于购物过程的相应的类和对象,并以比较合理的方式将它们组织起来。在电子商务系统的研究中,实现系统代码时,我们采用JSP实现用户视图,JSP和JavaBean作为模型,Servlet实现控制器,可以进行实现。

在浏览器的jsp页面中显示商品的信息,用户在界面中进行添加商品操作之后,到达servlet控制器,然后选择相应的购物篮模型,可能会与数据库进行交互,完成之后,再在购物车页面中进行显示出来。

MVC设计模式在网站中的应用的更多相关文章

  1. MVC设计模式(持续更新中)

    MVC设计模式--->英文全称为: model(模型)  View (视图)  Controller(控制)   MVC是一种设计思想.这种思想强调实现模型(Model).视图(View)和控制 ...

  2. Android入门(五):程序架构——MVC设计模式在Android中的应用

    刚刚接触编程的的人,可能会这样认为:只要代码写完了能够跑起来就算完工了.如果只是写一个小程序,“能够跑起来”这样的标准也就可以了,但是如果你是在公司进行程序的开发,那么仅仅让程序成功的跑起来是不行的, ...

  3. Servlet开发-----基础及MVC设计模式

    一.Servlet介绍   Servlet本身只是普通的Java类,只有当容器为他创建了ServletConfig和ServletContext时才成为了一个Servlet:   Servlet简单的 ...

  4. Java Web开发中MVC设计模式简介

    一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...

  5. iOS中MVC设计模式

    在组织大型项目的代码文件时,我们常用MVC的思想.MVC的概念讲起来非常简单,就和对象(object)一样.但是理解和应用起来却非常困难.今天我们就简单总结一下MVC设计理念. MVC(Model V ...

  6. asp.net MVC设计模式中使用iTextSharp实现html字符串生成PDF文件

    因个人需求,需要将html格式转换成PDF并加上水印图片.于是乎第一次接触这种需求的小菜鸟博主我,在某度搜索引擎上不断的查阅关键字资料.踩坑,终于有了一个相应的解决方案.以下是解决步骤,记录下来方便以 ...

  7. 针对Linux ASP.NET MVC网站中 httpHandlers配置无效的解决方案

    近期有Linux ASP.NET用户反映,在MVC网站的Web.config中添加 httpHandlers 配置用于处理自定义类型,但是在运行中并没有产生预期的效果,服务器返回了404(找不到网页) ...

  8. [译]MVC网站教程(四):MVC4网站中集成jqGrid表格插件(系列完结)

    目录 1.   介绍 2.   软件环境 3.   在运行示例代码之前(源代码 + 示例登陆帐号) 4.         jqGrid和AJAX 5.         GridSettings 6.  ...

  9. 谈谈JAVA工程狮面试中经常遇到的面试题目------什么是MVC设计模式

    作为一名java工程狮,大家肯定经历过很多面试,但每次几乎都会被问到什么是MVC设计模式,你是怎么理解MVC的类似这样的一系列关于MVC的问题. [出现频率] [关键考点] MVC的含义 MVC的结构 ...

随机推荐

  1. 可重入锁 & 不可重入锁

    可重入锁指同一个线程可以再次获得之前已经获得的锁,避免产生死锁. Java中的可重入锁:synchronized 和 java.util.concurrent.locks.ReentrantLock. ...

  2. 读vue-0.6-filters.js源码

    'abc' => 'Abc' function capitalize (value) { if (!value && value !== 0) return '' value = ...

  3. PostgreSQL查询优化逻辑优化之其他

    上一节我们介绍了PostgreSQL的子查询优化,子查询优化把一部分可以优化的子查询上拉到主查询成为join. preprocess_expression 将表达式(目标列,where,join,ha ...

  4. Kafka命令清单

    一.队列常用命令 #创建topics $ ./kafka-topics.sh --create --zookeeper chenx02:2181 --replication-factor 1 --pa ...

  5. PHP官方网站及PHP手册

    每个人都知道php.net,我们或早或晚的都会来到这里并不断的访问它.它是PHPer的主要参考网站,拥有大量有用的信息,但是这些信息却不是那么显而易见. 比较有用的官方PHP资源: PHP官方函数手册 ...

  6. 给linux系统配置网络

    修改/etc/sysconfig/network-scripts/ifcfg-eth0 ip地址变量:IPADDR子网掩码变量:NETMASK如果本机和linux 网段不相同 如:192.168.8. ...

  7. #11 Python字典

    前言 前两节介绍了Python列表和字符串的相关用法,这两种数据类型都是有序的数据类型,所以它们可以通过索引来访问内部元素.本文将记录一种无序的数据类型——字典! 一.字典与列表和字符串的区别 字典是 ...

  8. 偏流角(Draft Angle)在等距螺旋中的作用

    劳动改变人,思维改变世界.我们可以接着聊螺旋线了. 在飞行程序设计中,偏流角(Draft Angle简写为DA)通常指得是受侧风影响航向偏移的最大角度.用速度向量来表示时,是图1中的三角形关系: 图1 ...

  9. SpringBoot入门之Thymeleaf的使用

    在.net的MVC3 或更高版本等支持 Razor 的框架里使用cshtml,Razor是一种简单的编程语法,用于在网页中嵌入服务器端代码.在使用springboot开发mvc时也有与.net类似的视 ...

  10. 动态规划法(三)子集和问题(Subset sum problem)

      继续讲故事~~   上次讲到我们的主人公丁丁,用神奇的动态规划法解决了杂货店老板的两个找零钱问题,得到了老板的肯定.之后,他就决心去大城市闯荡了,看一看外面更大的世界.   这天,丁丁刚回到家,他 ...