mvc模式

面向接口编程之三——模式研究

天大地大妈咪最大 提交于 2020-01-01 20:15:35
原文链接: http://kb.cnblogs.com/page/145705/ 通过前面两篇,我想各位朋友对“面向接口编程”的思想有了一定认识,并通过第二篇的例子,获得了一定的直观印象。但是,第二篇中的例子旨在展示面向接口编程的实现方法,比较简单,不能体现出面向接口编程的优势和这种思想的内涵。那么,这一篇作为本系列的终结篇,将通过分析几个比较有深度的模式或架构,解析隐藏其背后的面向接口思想。这篇我将要分析的分别是MVC模式和.NET平台的分层架构。   这篇的内容可能会比较抽象,望谅解。    1. 从MVC开始   MVC简介:   本文不打算详细解释MVC架构,而是把重点放在其中的面向接口思想上。所以在这里,只对MVC做一个简略的介绍。   MVC是一种用于表示层设计的复合设计模式。M、V、C分别表示模型(Model)、View(视图)、Controller(控制器)。它们的职责如下:   模型:用于存储应用中的数据及运行逻辑,是应用的实体。   视图:负责可视部分,用于与用户交互及呈现数据。视图只负责显示,不负责将用户的操作行为解释给模型。   控制器:负责将用户的行为解释给模型。根据指定的策略和用户的操作,调用模型的逻辑。   关于三者的关系,我画了一张图,大家请看:    MVC模式示意   它们之间的交互有以下几种:   1. 当用户在视图上做任何需要调用模型的操作时

ASP.NET MVC轻教程 Step By Step 1 ——入门

て烟熏妆下的殇ゞ 提交于 2019-12-29 09:48:38
  使用ASP.NET MVC有一段时间了,本人还是非常喜欢ASP.NET MVC这个框架模式的。在经历了WebForm复杂粗暴的做法后,自然感觉简洁优雅的MVC清新可人,只不过WebForm和MVC的设计模式存在不小的差异,当初本人学习的时候也走了不少的弯路。于是想写一点入门的教程,也算是对自己学习的总结。   本教程自称是轻教程,轻不是轻浮,不是轻佻,而是举重若轻。宗旨就是少说话、多举例、讲重点。   本教程的开发环境是VS2015,版本低一些也没关系,2013版、2010版都可以哈,就是有些界面和操作不一致。MVC 3以上就好,MVC 1和MVC 2太老了,语法差异也大,就不说了。简单点说,装好VS2013或VS2015,我们就可以开始学了。   让我们先从一个简单DOME做起,完成一个简单的留言板。原因嘛,就是够简单啦。 Step 1. 建立项目 启动VS2015后,新建项目。 选择“Empty”模板,选择“MVC”。 这样一个空的MVC项目就建好啦! 建好的项目的解决方案资源管理器里已经有好多东东了,这些文件和文件夹起什么作用我们现在不用理会,就这样啦。 Step 2. ASP.NET MVC版Hello World! 一门新的语言或者框架的学习都是从经典的Hello World!开始的。让我们用MVC向世界say hello! 在项目中的Controllers上右键

MVC - Model - Controller - View

一个人想着一个人 提交于 2019-12-29 09:48:04
一。 Model 1.1 在ASP.NET MVC 中 model 负责的是所有与 "数据“ 相关的的任务。   也可以把Model 看成是 ASP.NET 中三层模式的 BLL层 加 DAL层。 1.2 model层中试用ORM信息反问技术 : LINQ to SQL ,Entity Framework,NHibernate, 等。   何为 ORM 技术: 对象关系映射。   即:ORM是将结构化的关系型数据,映射到对象模型。如果以 Entity Framework 来说,就是视图将关系数据库的中数据转化成.net原生对象。 二。 Controller 2.1 ASP.NET MVC 中的 Controller.   在 MVC 中所有的Controller都是默认继承自 System.Mvc.Controller   Controller是一个类,类中有许多Method 也就是 Action 。 负责处理浏览器来的所有要求   也就是浏览器通过 实例化 Controller 类 查找对应的Action。来响应View。  Controller /Action/id. 2.2 Controller 必须为公开类别。   Controller 名称必须以Controller 结尾。 2.3 当Controller找不到对应Action会默认运行System.Mvc

php mvc 模式的开发注意事项

社会主义新天地 提交于 2019-12-29 09:10:53
1.控制器中: 如果不涉及到数据库的就在控制器中。 empty($res['code']) ? $this->error($res['msg']) : $this->success($res['msg']); 抛出异常写法: try{ $res = $Scoreflow->doaddscore($post); if(empty($res['code'])){ throw new \Exception($res['msg']); } $this->success($res['msg']);}catch(\Exception $e){ $this->error($e->getMessage());} 2.模型中: 所有关于数据库的操作都在模型里面做。 return['code' => 0|1,'msg' => '返回信息'];//回复格式统一,会比较好处理 模型中的回滚(需要用 self:: ,否则不起作用 ) self::startTrans();try{ //符合条件修改状态 $exchangerecord_status = Exchangerecord::where('code',$code) ->update(['status' => '4']); //符合条件减库存 $goods_stock = Goods::where('id',$exchangerecord['ngzb

Spring MVC流程及使用

蹲街弑〆低调 提交于 2019-12-28 12:03:38
一、SpringMVC 简单介绍 SpringMVC 框架是以请求为驱动,围绕 Servlet 设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是 DispatcherServlet,它是一个 Servlet,顶层是实现的Servlet接口。 二、 SpringMVC 使用 需要在 web.xml 中配置 DispatcherServlet 。并且需要配置 Spring 监听器ContextLoaderListener ```xml <listener> <listener-class>org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class> <!-- 如果不设置init-param标签,则必须在/WEB-INF/下创建xxx-servlet.xml文件,其中xxx是servlet-name中配置的名称。 --> <init-param> <param-name

三层架构模式(MVC)案例:登录注册功能实现

走远了吗. 提交于 2019-12-27 15:09:09
1.搭建开发环境   1.1 导入项目所需的开发包:      dom4j-1.6.1.jar    jaxen-1.1-beta-6.jar    commons-beanutils-1.8.0.jar    commons-logging.jar    jstl.jar   standard.jar          1.2 创建程序的包名          1.3 在类目录下面,创建用于保存用户数据的xml文件(users.xml)-- 简单实现XML代替数据库users.xml <?xml version="1.0" encoding="UTF-8"?> <users> <user id="51db22dc-f861-417b-b929-588aec86237e" username="abc" password="123" email="abc@sina.com.cn" birthday="1990-8-5 0:00:00"/> </users> View Code 2、开发实体user   1.1 User.java   package com.lich.domain; import java.util.Date; public class User { private String id; private String username; private String

MVC的概念及MVC 3.0开发环境

大兔子大兔子 提交于 2019-12-27 05:17:59
摘要 MVC即: Model(模型), View(视图), Controller(控制器) Model : 模型对象是实现应用程序数据域逻辑的应用程序部件。 通常,模型对象会检索模型状态并将其存储在数据库中。 例如, Product 对象可能会从数据库中检索信息,操作该信息,然后将更新的信息写回到 SQL Server 数据库内的 Products 表中。 在小型应用程序中,模型通常是概念上的分离,而不是实际分离。 例如,如果应用程序仅读取数据集并将其发送到视图,则该应用程序没有物理模型层和关联的类。 在这种情况下,数据集担当模型对象的作用。 Controller : 控制器是处理用户交互、使用模型并最终选择要呈现的视图来显示 UI 的组件。 在 MVC 应用程序中,视图仅显示信息;控制器则用于处理和响应用户输入和交互。 例如,控制器处理查询字符串值,并将这些值传递给模型,而模型可能会使用这些值来查询数据库。 就是程序通过Controller从浏览器中接受命令,决定用它做什么,并返反馈给用户。即获取数据,然后将数据绑定到页面控件的这个业务逻辑。 View : 视图是显示应用程序用户界面 (UI) 的组件。 通常,此 UI 是用模型数据创建的。 Products 表的编辑视图便是一个视图示例,该视图基于 Product 对象的当前状态显示文本框、下拉列表和复选框。

谈 三层结构与MVC模式的区别

℡╲_俬逩灬. 提交于 2019-12-26 23:08:56
在CSDN和园子里有朋友谈到三层与MVC的区别,以前也有人抛出这个问题,本人对来公司面试的朋友也偶乐会提这方面的问题。 那么我也来讲讲我对这两者的理解吧。 首先对这个题目,本身是存在问题的,“XX结构”与“XX模式”的区别?请问中国社会制度与美国人生活方式有什么区别? 这两者本身讲的是不同方向与角度的问题,在实际应用中他们的确存在一些相似的特点,在很多书籍中也没有深入讲解,以致于造成困惑,为了更好的理解他们,姑且来说说区别吧。 首先N层结构是一种软件抽象的层次结构,是对复杂软件的一种纵向切分,每一层次中完成同一类型的操作,以便将各种代码以其完成的使命作为依据来分割,以将低软件的复杂度,提高其可维护性。一般来说,层次之间是向下依赖的,下层代码未确定其接口(契约)前,上层代码是无法开发的,下层代码接口(契约)的变化将使上层的代码一起变化。三层结构是N层结构的一种,是人产在长时间使用中得出来的一种应用场合广泛的N层结构,被当作一种典型的软件层次结构而广为流传甚至写入教科书。 MVC模式是一种复合设计模式,一种在特定场合用于解决某种实际问题来得出的可以反复实践的解决方案。巧合的是他也有三个事物组成,于是乎人们就有了一种想当然的对应关系:展示层-View;业务逻辑层-Control;持久层-Model。首先MVC中的三个事物之间并不存在明显的层次结构,没有明显的向下依赖关系,相反的

JavaWeb的两种开发模式

允我心安 提交于 2019-12-26 10:59:57
SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式, 一种是JSP+JavaBean模式 ,一种是 Servlet+JSP+JavaBean 模式。 一、JSP+JavaBean开发模式 1.1、jsp+javabean开发模式架构   jsp+javabean开发模式的架构图如下图(图1-1)所示 在jsp+javabean架构中,JSP负责控制逻辑、表现逻辑、业务对象(javabean)的调用。    JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用程序,这种模式下,JavaBean用于封装业务数据,JSP即负责处理用户请求,又显示数据。 1.2、JSP+JavaBean开发模式编写计算器   首先分析一下jsp和javabean各自的职责,jsp负责显示计算器(calculator)页面,供用户输入计算数据,并显示计算后的结 果,javaBean负责接收用户输入的计算数据并且进行计算,JavaBean具有firstNum、secondNum、result、 operator属性,并提供一个calculate方法。   1、编写CalculatorBean,负责接收用户输入的计算数据并且进行计算   CalculatorBean代码如下: package me.gacl.domain; import java.math.BigDecimal;

SpringMVC开发技术~~MVC模式中Servlet控制器的简介和应用

隐身守侯 提交于 2019-12-26 08:37:49
模型一视图一控制器(MVC)模式 一个实现MVC模式的应用包含模型、视图和控制器3个模块。 视图负责应用的展示。 模型封装了应用的数据和业务逻辑 控制器负责用户的输入,改变模型和调整视图的显示。 下面对每个组件进行解释 1 视图 Spring MVC使用采用JSP页面作为应用的视图 2 模型 模型则采用POJO(Plain Old Java Object)。POJO是一个普通对象。实践中会采用一个JavaBean来持有模型状态,并将业务逻辑放到一个Action类中。一个JavaBean必须拥有一个无参的构造器,通过get/set方法来访问参数,同时支持持久化。 3 控制器 模型2中,Servlet或者Filter都可以充当控制器。Spring MVC使用一个Servlet作为控制器。 每个HTTP请求都发送给控制器,请求中的URI标识出对应的action。 Action代表了应用可以执行的一个操作。一个提供了Action的Java对象称为action对象。一个action类可以支持多个action或者一个action。 看似简单的操作可能需要多个action。如,向数据库添加一个产品 需要两个action。 (1) 显示一个“添加产品”的表单,以便用户能输入产品信。 (2) 将表单信息保存到数据库中。 我们需要通过如下的URI来告诉控制器执行相应的action: 显示“添加产品