框架,架构,设计模式之区别

做者:知乎用户
连接:https://www.zhihu.com/question/31079945/answer/50565711
来源:知乎
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。

框架、设计模式这两个概念总容易被混淆,其实它们之间仍是有区别的。框架一般是代码重用,而设计模式是设计重用,架构则介于二者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以得到最高级别的重用性。
框架与设计模式虽然类似,但却有着根本的不一样。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架能够用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中每每含有一个或多个设计模式,框架老是针对某一特定应用领域,但同一模式却可适用于各类应用。能够说,框架是软件,而设计模式是软件的知识。
框架模式有哪些?
MVC、 MTVMVPCBDORM等等;
框架有哪些?
C++语言的QT、MFC、gtk, Java语言的 SSHSSIphp语言的 smarty(MVC模式), python语言的django(MTV模式)等等
设计模式有哪些?
工厂模式、适配器模式、策略模式等等
简而言之:框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提升代码复用率,下降耦合度。
 
举例盖房子 盖房子前,开发商都得作调研,咱们这个房地产项目,须要在哪儿选址;适合作什么项目;项目都有什么 功能,好比带不带花园,公益场所,游泳池这些;还得考察哪些工程队作过相似项目,项目的实施能力高 ,这样才能承包给他;再有就是后期的物业管理,都须要哪些部门,设什么项目。等等等等。  以上这些,我以为就是系统架构的内容。作这个项目前,要先了解这个项目,而后作一些选择,什么选择 呢?就是我该怎么作这个项目,采用c/s仍是b/s,是j2ee啊仍是用微软的体系,服务器用widows仍是unix ,是用spring啊,仍是只用struts框架,中间件websphere啊仍是weblogic,等等等等。别看这些讲起来 空泛,作起来但是不少工做,经验积累对这个工做也很重要。由于你不仅仅是作单选题,你还要把你的选 择合起来。若是选择不当,不一样的jdk版本,都有可能形成项目没法运行。  再说框架。房地产项目承包给了工程队,房地产商说了,我无论你怎么盖房子,可是盖出来的房子,得是  咱们要的样子,而且质量要可靠。这些事对工程队来讲是小菜一碟,人家成天盖房子,什么样的图纸盖出 什么样的房子,哪些地方拿什么样现成的门和窗户装上,熟得不能再熟了。  对了,框架就是用来具体实现某一功能的工具,框架的部件可以重用,并且某一框架通常都只能解决某一 领域的问题。好比strtus是web框架的实现,若是作b/s项目,用他来实现web层真的不错。可是在c/s项目 里,他就一点儿用处都没有了。  最后是模式。工程队盖房子确实快,可是盖房子的图纸和那些成型的门,窗,楼板框架可不是他们本身整  出来的,他们只管用。有专门的设计人员在作这些事情。这些设计人员成天就想,盖出一样的房子,怎么 样作才能更省材料,怎么作才能更省时间,那些现成的门窗,框架,怎么设计才能实现最大的使用面积,等等。  设计模式是包含在框架里的,就是用科学的方法来实现一个框架的功能。目的就是最大复用,最大功能实现,最方便调用。
相关文章
相关标签/搜索