什么是MVC开发模式以及它和传统开发模式的区别
什么是MVC开发模式以及它和传统开发模式的区别
故此模式适合小规模的WEB应用开发。 JSP+JavaBean开发,虽然实现了逻辑功能和显示功能的分离,但是由于检视层和控制层都是由JSP页面实现的,即检视层和控制层没有实现分离,所以它任然属于Model1模式。Model2模式——MVC开发模式 它是为了克服Model1存在的不足而设计的,MVC的具体含义是:model+view+control,即模型+检视+控制,这样的模式集成了JSP、Serclet、JavaBean,非常适合大型专案的开发。View检视层: 代表和使用者互动的介面,可以通过、xml、applet小java程式等实现,它仅仅负责资料的采集和处理(显示)。在JSP中它由JSP页面单独实现。Model模型层: 它常常使用JavaBean来编写,它接受检视层请求的资料,然后进行相应的业务处理并返回最终的处理结果,它负担的责任最为核心,并利用JavaBean具有的特性实现了程式码的重用和扩充套件以及给维护带来了方便。Control控制层: (1)各层各负其责,互不干涉。各自更新之后对其它层没有任何干扰; (2)MVC开发模式有利于责任分工,让专门人员分别从事专门层的设计,提高工作效率和质量; (3)元件可以得到很好的重用,由于分工明确,各层的元件可以独立成一个可以重用的元件。
MVC的具体含义是:model+view+control,即模型+检视+控制
它们各自处理自己的任务:
(1)模型:模型持有所有的资料、状态和程式逻辑。模型独立于检视和控制器。
(2)检视:用来呈现模型。检视通常直接从模型中取得它需要显示的状态与资料。对于相同的资讯可以有多个不同的显示形式或检视。
(3)控制器:位于检视和模型中间,负责接受使用者的输入,将输入进行解析并反馈给模型,通常一个检视具有一个控制器。
MVC模式将它们分离以提高系统的灵活性和复用性,不使用MVC模式,使用者介面设计往往将这些物件混在一起。MVC模式实现了模型和检视的分离,这带来了几个好处。
(1)一个模型提供不同的多个视图表现形式,也能够为一个模型建立新的检视而无须重写模型。一旦模型的资料发生变化,模型将通知有关的检视,每个检视相应地重新整理自己。
(2)模型可复用。因为模型是独立于检视的,所以可以把一个模型独立地移植到新的平台工作。
(3)提高开发效率。在开发介面显示部分时,你仅仅需要考虑的是如何布局一个好的使用者介面;开发模型时,你仅仅要考虑的是业务逻辑和资料维护,这样能使开发者专注于某一方面的开发,提高开发效率。
直接范范的说MVC适合不适合某个专案都是不准确的,所以我们在使用MVC模式的时候,要发挥其优点和长处!
传统WEB开发模式和ajax开发模式的区别
故此模式适合小规模的WEB应用开发。
JSP+JavaBean开发,虽然实现了逻辑功能和显示功能的分离,但是由于检视层和控制层都是由JSP页面实现的,即检视层和控制层没有实现分离,所以它任然属于Model1模式。Model2模式——MVC开发模式
它是为了克服Model1存在的不足而设计的,MVC的具体含义是:model+view+control,即模型+检视+控制,这样的模式集成了JSP、Serclet、JavaBean,非常适合大型专案的开发。View检视层:
传统模式就是吃烤串,一鲁到底,干脆利索,然后再来一串。
ajax模式就是吃火锅,捞完一锅,在涮一锅,但是汤和锅都没换。
那么问题来了
--传统模式很简单,开启新页面后初始化新的:样式、内容、指令码。之前的页面会全部销毁。
--ajax模式则从始至终主结构框架不变,仅区域性更新,因此需要合理的复用js指令码,避免全域性变数的污染,销毁上一个页面可能存在的常驻记忆体,避免记忆体泄露。合理的布局框架,清理超出主容器之外的新生元素,如弹出框等,避免冗余。
-------------------
所以需要采用面向物件的程式设计方式,将所有指令码模组化,使用闭包,统一API,路由等。
可以考虑使用mvvm框架AngularJS 或 vuejs,参考单页应用“SPA”的开发方式。
MVC开发模式的优点?
MVC设计模式可以方便开发人员分工协作,提高开发效率,增强程式的可维护性和拓展性...而且还利用Controller将Model与View分离,降低它们之间的耦合度....
简单的来说就是 模型model 控制器controller 检视view
MVC最初所实现的目的就是使得三层分类,每层能够都独自的开发,低耦合。
控制器作为桥梁连线其余两层进行业务逻辑处理,模型层作为资料库的对映层进行资料库的封装,检视则只负责显示。
推荐学习网站:磁石部落格
关于MVC开发模式?!
随意,根据你要做的东西不同而将之放在不同地方,如果是小专案,就不用单独提出来了,如果需要测试解耦,那么你不得不提出来