MVC与三层结构,设计模式与框架.
前言
本篇文章将整理一下关于MVC的相关内容.
- MVC模式与三层结构
图片.pngMVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
MVC是一种模式,但却在GoF总结出来的这个23个设计模式之外,确切的说它不是一种设计模式,因为它是多种设计模式的组合,并不仅仅只是一个单独的一个模式。
而MVC与三层结构,也有着根本的区别,他们在设计的思想上都不相同,三层结构,将软件体系分为ui表现层,业务逻辑层,与数据访问层.三层结构是一种软件体系的结构方式,将软件的结构体系分为了这么三块,而现在大多的程序员在使用MVC模式(如今MVC模式大行其道)的时候,更容易将业务逻辑层写入Controller层,将数据访问写到model层.这其实是不对的,这样的软件(网站),不过是抛头换面的三层结构设计,而算不上MVC模式.
图片.png为什么MVC模式是由view,controller,model三个核心部分组成,controller为什么叫控制器,而不是叫什么业务器呢.那时因为MVC的基本设计理念就与三层结构是不同的,并且详细来判断的话,他们都不是一个层次的技术,三层结构适用于整体软件体系结构的设计.而MVC模式也可以说是一种设计模式(多种设计模式结合),设计模式提供的不是一个软件系统的结构解决方案,设计模式 指的是可复用的面向对象软件元素,它面对的是软件系统中更小,更实际的开发问题.
MVC要实现的目标是将软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强。
比方说,有一个View会提交数据给Model进行处理以实现具体的行为,View通常不会直接提交数据给Model,它会先把数据提交给Controller,然后Controller再将数据转发给Model。假如此时程序业务逻辑的处理方式有变化,那么只需要在Controller中将原来的Model换成新实现的Model就可以了,控制器的作用就是这么简单, 用来将不同的View和不同的Model组织在一起,顺便替双方传递消息,仅此而已。
我们通过controller来控制vlew与model之间的联系,与数据传输.而不是通过controller来处理业务.
我们通过一个例子来看看:
图片.png- 首先我们在model层里定义一个model类(相当于一个javabean)model用来储存数据对象,也可以带有一些逻辑,用来在数据变化是更新控制器:
声明属性,并声明成员方法,与构造方法等主要方法:
图片.png-
然后我们在view层里定义两个view视图用来做不同的输出:
图片.png
- 在controller层中定义一个controller控制器,来控制view与model之间的互联与数据的交互:
我们可以看到,controller控制器,是基于view,model对象来进行操作的,它主要需要起到的作用就是控制view与model之间的联系.如此,简单化controller中的代码,便于在后期业务变动修改和维护系统.
- 最后我们通过一个demo类(定义主方法)来看看MVC模式的具体机制:
我们可以看到,我们只要声明并运行对应的controller,就可以实现不同的model与view之间的联系.
MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易,MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
MVC指MVC设计模式的某种框架,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet+ javabean的模式。
- 设计模式与框架
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。
框架通常是代码重用,而设计模式是设计重用,框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。
更新时间:
2019-7-15
15:11