框架与设计模式的区别

框架和设计模式的区别
有不少程序员每每把框架模式和设计模式混淆,认为MVC是一种设计模式。实际上它们彻底是不一样的概念。[7]  
框架、设计模式这两个概念总容易被混淆,其实它们之间仍是有区别的。框架一般是代码重用,而设计模式是设计重用,架构则介于二者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以得到最高级别的重用性。
框架与设计模式虽然类似,但却有着根本的不一样。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架能够用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中每每含有一个或多个设计模式,框架老是针对某一特定应用领域,但同一模式却可适用于各类应用。能够说,框架是软件,而设计模式是软件的知识。
框架模式有哪些?
MVC、MTV、 MVP、CBD、 ORM等等;
框架有哪些?
C++语言的QT、MFC、gtk,Java语言的 SSH 、 SSIphp语言的 smarty(MVC模式), python语言的django(MTV模式)等等
设计模式有哪些?
工厂模式、适配器模式、策略模式等等
简而言之:框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提升代码复用率,下降耦合度。

常见框架编辑

Struts

StrutsApache软件基金下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能够很容易的与数据访问技术相结合,包括 EJBJDBC和Object Relation Bridge。在视图层,Struts可以与JSP, Velocity Templates,XSL等等这些表示层组件相结合。[8]  

Spring

Spring其实是Expert One-on-One J2EE Design and Development 一书中所阐述的设计思想的具体实现。在One-on-One 一书中, Rod Johnson倡导 J2EE实用主义的 设计思想,并随书提供了一个初步的开发框架实现(interface21 开发包)。而Spring 正是这一思想的更全面和具体的体现。Rod Johnson 在interface21 开发包的基础之上,进行了进一步的改造和扩充,使其发展为一个更加开放、清晰、全面、高效的开发框架。
Spring是一个开源框架,由Rod Johnson建立而且在他的著做《J2EE设计开发编程指南》里进行了描述。它是为了解决企业应用开发的复杂性而建立的。Spring使使用基本的JavaBeans来完成之前只可能由EJB完成的事情变得可能了。然而,Spring的用途不只限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用均可以从Spring中受益。
简单来讲,Spring是一个轻量的控制反转和面向切面的容
框架。固然,这个描述有点过于简单。但它的确归纳出了Spring是作什么的。[8]  

ZF

Zend Framework(简写ZF)是由 Zend 公司支持开发的彻底基于 PHP5 的开源PHP开发框架,可用于开发 Web 程序和服务,ZF采用 MVC(Model–View-Controller) 架构模式来分离应用程序中不一样的部分方便程序的开发和维护。
(MVC框架的详细使用及其相关具体操做能够阅读参考资料:[8]   或者扩展阅读第二,三,四条。)

.NET

.NET MVC[9]   是微软官方提供的以MVC模式为基础的.NET Web应用程序(Web Application)框架,它由Castle的 MonoRail而来(Castle的MonoRail是由java而来),目前最新版本是.N 4.5。[10]  
相关文章
相关标签/搜索