c语言mvc
⑴ MVC是什么
不是,struts只是实现MVC的一种代表性的框架。
MVC概述:
MVC是Model-View-Controller的简称,即模型-视图-控制器。MVC是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用,最近几年被推荐为Sun公司J2EE平台的设计模式,受到越来越多的Web开发者的欢迎。
MVC设计模式:
MVC是一种设计模式,它强制性地把应用程序的输入、处理和输出分开。MVC把应用程序分成三个核心模块:模型、视图和控制器,它们分别担负不同的任务。
MVC处理过程:
首先控制器接受用户的请求,并决定应该调用哪个模型来进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。
MVC的优缺点:
1. MVC的优点
1) 可靠性(Reliability):将表示层和处理层完全分开,可以在不重新编译model和controller的情况下修改view层。
2) 复用性和适应性(reuse & adaptability):MVC使你可以使用多种view去访问相同的model。
3) 快速开发(Rapid deployment):因为MVC清晰的将表示层和处理层分开,所以使得不同的程序员可以各司其则,增加开发速度。
4) 可维护性(Maintainability):清晰的分层同样使得代码清晰、程序的可维护性提高。
2. MVC的缺点
MVC的设计实现并不十分容易,理解起来比较容易,但对开发人员的要求比较高。MVC只是一种基本的设计思想,还需要详细的设计规划。模型和视图的严格分离可能使得调试困难一些,但比较容易发现错误。实验表明,MVC由于将应用分为三层,意味着代码文件增多,因此,对于文件的管理需要费点心思。
Struts概述
Struts实质上就是在JSP MODEL2的基础上实现的一个MVC框架。在Struts框架中,模型由实现业务逻辑的javaBean或EJB组建构成,控制器由ActionServlet和Action来实现,视图由一组JSP文件构成。
对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象中,例如Action的映射信息存放在ActionMapping对象中。
当ActionServlet接收到一个客户请求时,将执行如下流程。
1) 检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。
2) 如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。
3) 根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的validate()方法。
4) 如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActionErrors对象,就表示表单验证成功。如果ActionForm的validate()方法返回一个包含一个或多个ActionMessage的ActionErrors对象,就表示表单验证失败,此时ActionServlet将直接把请求转发给包含用户提交表单的JSP组件,在这种情况下,不会再创建Action对象并调用Action的execute()方法。
5) ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action。如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法。
6) Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件。
7) ActionForward对象指向的JSP组件生成动态网页,返回给客户。
⑵ 什么是MVC
MVC(模型Model-视图View-控制器Controller)是一种设计模式,
MVC。V即View.是视图的意思。C即Controller.是控制器的意思。而M即Model,是模型的意思。这三个里.最不容易理解的应该是Model.就是什么是Model,而为什么叫Model。我先不说为什么叫Model,先解释Controller。
Controller是控制器的意思,所谓控制器,就是将用户请求转发给模型层,经过处理后把结果返回到界面层展现的一个中间层,那么Controller到底管什么工作呢?先不说.先来看下在Java
Web中这三个层一般的定义,一般在Java
Web里,JSP充当V,Servlet充当C,JavaBean充当M,这里的Servlet管什么工作呢?接受输入,转到Model层去处理,处理结果保存后转发到JSP,然后展现数据。所以它的功能就是控制器的基本功能,它就管转发,在V和M之间转来转去。
再来说说M,即Model,在Java
Web里说的是JavaBean,我认识的很多人都把JavaBean误认为是实体类,其实JavaBean有比实体类更丰富的定义,在JavaBean中除了其属性和字段,还可以有行为及其事件,JavaBean可以理解为普通Java对象。Java普通对象,就是符合Java规范的所有对象,这和实体类完全是两回事。所以,我认为在MVC中。业务逻辑和数据访问应该放在Model层,也就是V负责展示数据,Controler除了转发不做业务逻辑。真正的逻辑事务,数据访问,甚至算法都放到Model去。
MVC没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是已实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的
⑶ 浅谈开发中的MVVM模式及与MVP和MVC的区别
浅谈开发中的MVVM模式及与MVP和MVC的区别
在使用强制转换时应注意以下问题:
1) 类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。
2) 无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。
【例3.13】
main(){
float f=5.75;
printf("(int)f=%d,f=%f\n",(int)f,f);
}
本例表明,f虽强制转为int型,但只在运算中起作用,是临时的,而f本身的类型并不改变。因此,(int)f的值为 5(删去了小数)而f的值仍为5.75。
3.8 算术运算符和算术表达式
c语言中运算符和表达式数量之多,在高级语言中是少见的。正是丰富的运算符和表达式使C语言功能十分完善。这也是C语言的主要特点之一。
C语言的运算符不仅具有不同的优先级,而且还有一个特点,就是它的结合性。在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。这种结合性是其它高级语言的运算符所没有的,因此也增加了C语言的复杂性。
3.8.1 C运算符简介
⑷ mvc 是什么意思
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
⑸ c语言高手进
C语言一般用在底层开发,比如驱动,通讯协议栈,图像处理等,直接用C语言开发的应用还是比较少的。C语言不想java那些高级语言那样容易写出个小工具小程序的,所以很多人都不知道用C语言干什么。
我感觉学完C语言只是个开始,因为在实际开发中,会写C语言根本不是个主要技术,相反它都算不上是技术,因为用C语言去实现的才是真正的技术。如果你决心用C语言的的话,你就要学习其他的技术了,比如操作系统相关。如果你还是个学生,时间比较多的话,你就可以学习一下数据结构方面的东西,一来可以熟练你的C语言,另外数据结构也还算重要的,说不准在某个领域就能用到了。
另外,编程语言这种东西都是触类旁通的,学完C你可以看看C++,因为有基础,所以学习c++会很快的,之后就可以看看MFC之类的,这样就可以开发PC程序了。
⑹ C#中的MVC
MVC是一种开发模式 并不分语言 任何网站开发语言都可以以这种模式开发~ 主要就是像你说的 是分层开发 M模型层 主要就是负责数据库方面的 像一些数据的增,删,改,查等操作,v就是视图层 放一些表形的控件图片之类的东西总之就是给人看的。c就是控制层 主要负责一些业务逻辑,可以说是 视图和数据之间的处理功能!
⑺ 一个C语言程序是由哪几个部分组成,每一个部分起什么作用
预定义 全局变量(可无) 主函数 自定义函数(可无)
预定义包括加载头文件、定义宏、预编译等!全局变量你懂得!主函数是程序入口点!自定义函数是对方法的封装!!总的来说主函数是控制模块,用于对自定义函数及系统函数的加载与调用,而自定义函数属于业务代码!!所谓业务是指完成指定任务的代码,例如要求完成两个数交换,那么这个就是任务,而你要写的函数就是业务逻辑代码!!一般在后台运行!!而printf(),puts()这两个函数都可以工作于显示用来编写初级界面挺好!!所以一般也可将C语言化成MVC模式(M指业务逻辑层,业务代码,V指界面层,编写界面,C控制代码,例如main(),也可让main()调用一个控制个函数调用的函数)!!!只要你对高级C部分有所了解!!一样完成java等面向对象语言的开发模式!!例如鼠标键盘操作要熟(不是指敲键盘哦是在程序中实现键盘的功能及鼠标的功能)!!当然这只是个人的言论!不过对于开发来说是很好的模式!!
⑻ 什么是MVC啊
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。
比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。
后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。
(8)c语言mvc扩展阅读:
MVC 编程模式:
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
1、Model(模型)表示应用程序核心(比如数据库记录列表)。
2、View(视图)显示数据(数据库记录)。
3、Controller(控制器)处理输入(写入数据库记录)
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制:
1、Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据。
2、View(视图)是应用程序中处理数据显示的部分。
通常视图是依据模型数据创建的。
3、Controller(控制器)是应用程序中处理用户交互的部分。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
框架内容:
MVC指MVC模式的某种框架,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式。
1、视图
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和像XHTML,XML/XSL,WML等一些标识语言和Web services.
MVC好处是它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
2、模型
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。
例如它可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
3、控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
常见框架Struts:
Struts是Apache软件基金下Jakarta项目的一部分。Struts框架的主要架构设计和开发者是Craig R.McClanahan。Struts 是Java Web MVC框架中不争的王者。经过长达九年的发展,Struts已经逐渐成长为一个稳定、成熟的框架,并且占有了MVC框架中最大的市场份额。
但是Struts某些技术特性上已经落后于新兴的MVC框架。面对Spring MVC、Webwork2这些设计更精密,扩展性更强的框架,Struts受到了前所未有的挑战。但站在产品开发的角度而言,Struts仍然是最稳妥的选择。
Struts有一组相互协作的类(组件)、Servlet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是MVC设计模式的一种变化类型。
根据上面对framework的描述,很容易理解为什么说Struts是一个web framework,而不仅仅是一些标记库的组合。但 Struts 也包含了丰富的标记库和独立于该框架工作的实用程序类。
Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。
在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和Object Relation Bridge。在视图层,Struts能够与JSP, Velocity Templates,XSL等等这些表示层组件相结合。
参考资料:
网络-MVC框架