请问除了MVC架构模式,前端还有那些常用的架构模式? 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Mvc不是架构模式 不要为了模式而模式 前端居然有MVC模式,第一次听说,受教了 晕,MVC不是架构模式是什么呀?!更晕,MVC应用非常广,特别是在前端呀! 你说是架构模式,好。我姑且认为你对此定义是广义上的定义。这样没错M-V-C如果说是架构模式,那势必MODEL层承接了所有的后台业务逻辑和数据访问等等。造成头重脚轻的概念我们暂且不论你说是架构模式,同时有说特别应用在前端,难道一个项目的架构仅仅只针对前端吗?不合理吧。当然,如果说MVC是架构模式的话,那我们须对MODEL层进行单独架构,以解层之间耦合。那么单独的MVC便不足以成为架构模式了吧。或许我的理解和你,或者大多数人不同,但是我依然认为架构模式的前提是撑起整个项目的。比如三层架构。我本不那么的咬文嚼字,只是既然提到了,我就顺便提下。 to cj205: 先谢谢你的热心回复 不过感觉我们对MVC和什么是“架构模式”的理解差别比较大,所以这个问题咱们没有继续“讨论”的价值,就不多说了 我的问题主要是想问,针对前端架构上,还有其他什么常用的模式?比如Module模式我觉得也可以算一种 微软的asp.net MVC就是专门针对比较复杂的UI设计的架构模式,只应用于平时的多层架构中的view层,是基于URL驱动的,不是基于事件的驱动。在处理比较复杂的UI的时候,如果使用这种模式架构将会减少很多工作,现在已经得到了很多应用! MVC是一种模式,更是一种思想,是一种设计理念。不一定之限制用在服务器端,你觉得用作前端可以那么就可以。它只是一种规范而已或许不久的将来,也可以在前端看到MVC模式将事件-数据-对象分开开发 asp.net mvc从RC版我就开始使用了~~但是model层我一直使用我之前三层架构里面的bll和dal。url驱动你说的是url routing吧其实web发展的前期,并没有web form的这种形式,因为WEB是无状态的(WEB FORM通过viewstate模拟了)。一直可以说是你所谓的url驱动的。微软的asp.net MVC就是专门针对比较复杂的UI设计的架构模式,只应用于平时的多层架构中的view层,是基于URL驱动的,不是基于事件的驱动。在处理比较复杂的UI的时候,如果使用这种模式架构将会减少很多工作,现在已经得到了很多应用!mvc我更愿意理解为表现模式Trygve Reenskaug在提出的时候就定义为presention pattern。从smalltalk上被扩展,广泛应用之后虽然有很多变种,但是MVC也就是UI的表现模式。好吧。你说到asp.net mvc那么我们可以看到这里面有controller、view对吧,那么model层呢?当然如果你硬要把一个架构模式当做mvc中的model来看,那我也没什么好辩解的,反正目前来看mvc已经被滥用的不能在多了 楼主说其用在前端,我觉得没有任何问题~~包括jQuery库在内的很多前端都用到了mvc。Martin Fowler在企业应用架构模式提到了MVC(具体内容大家可以自己去看)。如果说非要给MVC定义为架构模式(或是一部分)。我也不好在说什么了我觉得设计模式是针对现实情况而已,如果有一天你把23种设计模式揉到一起也设计了一个好的前台框架,那么你也可以定义你的设计模式啊。局限于现在的模式,去套或非要去给某个应用定义一个模式的话,限制性太大。这句话不止一个人提过~ 官方网站:http://www.asp.net/mvc /同时,asp.net Mvc 也提供了一个社区预览版:http://www.codeplex.com/aspnet 哦对了,asp.net mvc是一个微软提供的开发框架 不等于MVC模式本身~~~ 不要不懂装懂。java的设计模式是博大精神的,设计模式按应用场景设计的。只是你不知道,当你知道这个模式之后,会一种大彻大悟的感觉。而且,我们在平常中有时没有看过设计模式。但也会用到。只是你不知道这种设计模式,微软就一个抄,不喜欢搞设计模式,后面大家都懂的。 你可以说我不懂。不过我希望你能说出点东西来。至于你说java的设计模式博大精深。我很难理解,其他的语言难道就没有设计模式了?设计模式按应用场景设计和我所言有什么区别吗还有这是js版块,没涉及到java。不过你既然提到了,那么想请阁下介绍下Java能实现的设计模式而C#实现不了的?微软抄归抄,总比Java常年不更新强吧。大彻大悟,不知道阁下悟出来什么了没,大家一起分享下啊~没有看到设计模式?你想表达的是,设计模式无处不在(和算法一样),只是不去追究他到底属于什么设计模式吧。那这一点和我说的又有什么不同。 mvc不属于前端的架构模式。没有前端的架构模式这一说法。系统的架模,我只听过b/s的架构,还有就是c/s的架构吧。 “在前端,还有那些架构模式”这句话的意思是:应用在前端,有哪些架构模式?所谓前端: JavaScript、html、css;ASP.NET,JSP,PHP等等都算上,以某种方式组织代码,目的是最终做出展示给用户使用的网页。licip:“前端的架构模式“是你自己发明的。 to cj205:我目前在做的是ERP软件的前端UI,B/S架构的,.NET平台,不过前端不受平台语言的限制,主要还是JavaScript,html,css结合asp.net的方式。 ERP软件的话。往往业务逻辑、需求变更较大。我觉得你还是使用Ext等框架来做前台搭建比较好。因为涉及到频繁的数据交互,同时我建议你使用一个中间件来相对较低耦合(当然,看你的需求变更)至于用什么架构模式,我觉得问题都不大,即使是大家所说的MVC,也需要经过变种后应用到项目中去。 Mvc不是架构模式 不要为了模式而模式顶··! 曾见过Java的ZK框架。。很强大的说 Mvc不是架构模式 不要为了模式而模式 我就支持楼主的讲,一般MVC只用于做“前端”,因为我公司也是这样做。系统分三层,DAL,BLL,UI,所有的业务逻辑都在BLL中经过处理。最后,如系果统UI用WEB来表现,再以MVC方式来开发。如果系统的逻辑关系比较复杂,单单以MVC实现整体开发是不理智的。三层模式其实是纵向的,每个层次都有对应的接口实现隔离。而MVC中,Controller,Model,View却是平向,三部分实现不同的功能。 我们公司也是做ERP的,我刚来才认识系统,还不是很懂。用的是delphi+java+oracle,不知道这是否算B/w架构 MVC是設計思想,不是設計模式。你要認為思想==模式,那就大錯特錯了。 你先了解MVC的意思: MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)。 MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。 MVC是强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。 用ext 是不是有点超前了! to Leslies2: 谢谢,终于遇到个有共同语言的同志 mvc只是服务器端的前端。而且,他不是设计模式。硬要说的话,mvc其实本质是工厂方法模式,通过不同的URL来定位不同的modal产品,并且由modal的返回结果不同,返回不同的view。这个过程中,其实套了两层工厂。上面的回答都有点跑题除了mvc,还有proxy模式用的比较多。比如struts2的拦截器,javaee的filter,spring的aop都是用了这种思想。 怎么这么多人咬文嚼字,模式<>设计模式<>GOF提到的设计模式。模式还有架构模式、应用模式等,martin fowler的《企业架构模式》里面提的模式,基本就不是GOF说的那种设计模式。两者的层面不一样。我认为楼主的提法没问题,明白就行了 补充下楼主正题:除了MVC,还有一种变形叫MVP,目的是提高界面的可测试性,楼主可以查查相关资料。 to rainsilence: 说了那么多,还是所答非所问,哎!to Harryfin: 看来咱们能有共同语言。这么简单个问题,怎么能搞出这么多花样的答案 这算是行业现状吗?! Mvc不是架构模式啊 !!!!!! 呵呵,其实我不得不佩服马丁福勒,他不止一次的说过:编程人员好个咬文嚼字,然后用那些名词束缚自己楼主,是这样的:1.你题目中所指的MVC我想应该是指asp.netMVC, MVC可以当做是规律,思想,方法论,设计模式,可他就不是架构,他不是被发明的,而是被发现的,不管谁最先提出这个理论,赋予定义,每个开发组织都可以根据自己的面向对象经验构建自己的MVC体系.MVC既不属于哪个公司,也不特定用于前端开发,甚至也不是软件专业专有,恰恰这种思想在其他领域的应用早已成熟,这尤其表现在包括计算机在内的传统工业设计和生产; asp.netMVC是微软推出的一个前端开发框架,工具集,出于商业目的(吸引JAVA派倒戈),它被取了个MVC的名字,其实单就已有的.net开发组织,asp.netMVC对MVC设计思想的支持和工业化生产的支持还比不上webform;2.在.net平台下,前端开发的方案通常会有以下几种策略: asp.net MVC asp.net webform 各种更多依赖js(Ajax)的框架集应用 xaml silverlight(也是居于xaml)说得不好,仅供参考 to microtry: !@#$%^&*(没法沟通) 关于MVC:http://se.csai.cn/ANALYZE/200712291011101306.htm 1.从哪里看出来我指的的asp.netMVC? 我自己都不知道呢?你说了这么多,全是你的主观臆断而已,希望你看清楚我的问题再回答。2.前一点已经所答非所问了,这一点就更不用说了。哎!btw:Harryfin在58楼的回答才是我想要的答案,希望后面的朋友更多的从这个角度去思考回答问题。 多层是架构模式?那Facade是什么?如果你用过spring,你应该知道spring的架构最后给你规范好的代码就是Facade。也就是把表现层,前台mvc,业务逻辑,持久层分开了。设计模式是基础,记得前面也有几个兄弟说,只要掌握了基础,你就可以创造出新的架构,甚至新的设计模式。比如mvc。我前面也说了,mvc本质就是工厂的工厂。你现阶段说的架构不过就是经过设计模式组装后的产物。 martin fowler的《企业架构模式》里面提的模式,那是针对解决方案的。跟mvc也不是同一个层次。 不赞成咬文嚼字,mvc模式确实主要应用在展现层的设计上。楼主想问:还有什么展现层的设计思路。 前台到控制器的设计,只有MOD1和MOD2,基中MOD2就是指MVC 感觉这里面总有人误读楼主的意思,MVC可以说是观察者模式的演进。 MVC 只是一个开发的模板 关于用JQuery写标题展开的问题(效果类似微博点击标题展开内容) iframe reload 的时候缓存 这种URL地址如何编码和解码 如何用 js 查找 框架内的内容? 求高手修改一个效果 怎样使按钮在按下的时候不出现虚线框 我想弹出新窗口。。。 求源码!有点难~ 送200分 框架结构中的网页,如何实现通过其中一个frame的滚动条来控制两个frame的内容同时滚屏 关于窗口全屏???(急!!!) Extjs中如何合并多表头 ExtJs提交表单后,报语法错误,检查了好多遍了,好奇怪
更晕,MVC应用非常广,特别是在前端呀!
M-V-C
如果说是架构模式,那势必MODEL层承接了所有的后台业务逻辑和数据访问等等。造成头重脚轻的概念我们暂且不论
你说是架构模式,同时有说特别应用在前端,难道一个项目的架构仅仅只针对前端吗?不合理吧。
当然,如果说MVC是架构模式的话,那我们须对MODEL层进行单独架构,以解层之间耦合。那么单独的MVC便不足以成为架构模式了吧。
或许我的理解和你,或者大多数人不同,但是我依然认为架构模式的前提是撑起整个项目的。比如三层架构。我本不那么的咬文嚼字,只是既然提到了,我就顺便提下。
先谢谢你的热心回复
不过感觉我们对MVC和什么是“架构模式”的理解差别比较大,所以这个问题咱们没有继续“讨论”的价值,就不多说了
我的问题主要是想问,针对前端架构上,还有其他什么常用的模式?比如Module模式我觉得也可以算一种
不一定之限制用在服务器端,你觉得用作前端可以那么就可以。它只是一种规范而已
或许不久的将来,也可以在前端看到MVC模式
将事件-数据-对象分开开发
但是model层我一直使用我之前三层架构里面的bll和dal。
url驱动你说的是url routing吧
其实web发展的前期,并没有web form的这种形式,因为WEB是无状态的(WEB FORM通过viewstate模拟了)。一直可以说是你所谓的url驱动的。
微软的asp.net MVC就是专门针对比较复杂的UI设计的架构模式,只应用于平时的多层架构中的view层,是基于URL驱动的,不是基于事件的驱动。在处理比较复杂的UI的时候,如果使用这种模式架构将会减少很多工作,现在已经得到了很多应用!
mvc我更愿意理解为表现模式
Trygve Reenskaug在提出的时候就定义为presention pattern。从smalltalk上被扩展,广泛应用之后虽然有很多变种,但是MVC也就是UI的表现模式。
好吧。你说到asp.net mvc那么我们可以看到这里面有controller、view对吧,那么model层呢?
当然如果你硬要把一个架构模式当做mvc中的model来看,那我也没什么好辩解的,反正目前来看mvc已经被滥用的不能在多了
包括jQuery库在内的很多前端都用到了mvc。
Martin Fowler在企业应用架构模式提到了MVC(具体内容大家可以自己去看)。如果说非要给MVC定义为架构模式(或是一部分)。我也不好在说什么了我觉得设计模式是针对现实情况而已,如果有一天你把23种设计模式揉到一起也设计了一个好的前台框架,那么你也可以定义你的设计模式啊。局限于现在的模式,去套或非要去给某个应用定义一个模式的话,限制性太大。这句话不止一个人提过~
同时,asp.net Mvc 也提供了一个社区预览版:http://www.codeplex.com/aspnet
java的设计模式是博大精神的,设计模式按应用场景设计的。
只是你不知道,当你知道这个模式之后,会一种大彻大悟的感觉。
而且,我们在平常中有时没有看过设计模式。但也会用到。只是你不知道这种设计模式,微软就一个抄,不喜欢搞设计模式,后面大家都懂的。
至于你说java的设计模式博大精深。我很难理解,其他的语言难道就没有设计模式了?
设计模式按应用场景设计和我所言有什么区别吗还有这是js版块,没涉及到java。不过你既然提到了,那么想请阁下介绍下Java能实现的设计模式而C#实现不了的?
微软抄归抄,总比Java常年不更新强吧。
大彻大悟,不知道阁下悟出来什么了没,大家一起分享下啊~
没有看到设计模式?你想表达的是,设计模式无处不在(和算法一样),只是不去追究他到底属于什么设计模式吧。那这一点和我说的又有什么不同。
系统的架模,我只听过b/s的架构,还有就是c/s的架构吧。
所谓前端:
JavaScript、html、css;ASP.NET,JSP,PHP等等都算上,以某种方式组织代码,目的是最终做出展示给用户使用的网页。licip:“前端的架构模式“是你自己发明的。
我觉得你还是使用Ext等框架来做前台搭建比较好。
因为涉及到频繁的数据交互,同时我建议你使用一个中间件来相对较低耦合(当然,看你的需求变更)
至于用什么架构模式,我觉得问题都不大,即使是大家所说的MVC,也需要经过变种后应用到项目中去。
系统分三层,DAL,BLL,UI,所有的业务逻辑都在BLL中经过处理。
最后,如系果统UI用WEB来表现,再以MVC方式来开发。如果系统的逻辑关系比较复杂,单单以MVC实现整体开发是不理智的。
三层模式其实是纵向的,每个层次都有对应的接口实现隔离。而MVC中,Controller,Model,View却是平向,三部分实现不同的功能。
你要認為思想==模式,那就大錯特錯了。
MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)。 MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
MVC是强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
谢谢,终于遇到个有共同语言的同志
说了那么多,还是所答非所问,哎!to Harryfin:
看来咱们能有共同语言。这么简单个问题,怎么能搞出这么多花样的答案 这算是行业现状吗?!
1.你题目中所指的MVC我想应该是指asp.netMVC,
MVC可以当做是规律,思想,方法论,设计模式,可他就不是架构,他不是被发明的,而是被发现的,不管谁最先提出这个理论,赋予定义,每个开发组织都可以根据自己的面向对象经验构建自己的MVC体系.MVC既不属于哪个公司,也不特定用于前端开发,甚至也不是软件专业专有,恰恰这种思想在其他领域的应用早已成熟,这尤其表现在包括计算机在内的传统工业设计和生产;
asp.netMVC是微软推出的一个前端开发框架,工具集,出于商业目的(吸引JAVA派倒戈),它被取了个MVC的名字,其实单就已有的.net开发组织,asp.netMVC对MVC设计思想的支持和工业化生产的支持还比不上webform;
2.在.net平台下,前端开发的方案通常会有以下几种策略:
asp.net MVC
asp.net webform
各种更多依赖js(Ajax)的框架集应用
xaml
silverlight(也是居于xaml)说得不好,仅供参考
关于MVC:
http://se.csai.cn/ANALYZE/200712291011101306.htm
2.前一点已经所答非所问了,这一点就更不用说了。哎!btw:Harryfin在58楼的回答才是我想要的答案,希望后面的朋友更多的从这个角度去思考回答问题。
多层是架构模式?那Facade是什么?如果你用过spring,你应该知道spring的架构最后给你规范好的代码就是Facade。也就是把表现层,前台mvc,业务逻辑,持久层分开了。设计模式是基础,记得前面也有几个兄弟说,只要掌握了基础,你就可以创造出新的架构,甚至新的设计模式。比如mvc。我前面也说了,mvc本质就是工厂的工厂。你现阶段说的架构不过就是经过设计模式组装后的产物。
martin fowler的《企业架构模式》里面提的模式,那是针对解决方案的。跟mvc也不是同一个层次。
感觉这里面总有人误读楼主的意思,MVC可以说是观察者模式的演进。