作者:知乎用户
链接:https://www.zhihu.com/question/31079945/answer/50565711
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。
框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。
框架模式有哪些?
MVC、MTV、MVP、CBD、ORM等等;
框架有哪些?
C++语言的QT、MFC、gtk,Java语言的SSH 、SSI,php语言的 smarty(MVC模式),python语言的django(MTV模式)等等
设计模式有哪些?
工厂模式、适配器模式、策略模式等等
简而言之:框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。
举例盖房子
盖房子前,开发商都得做调研,我们这个房地产项目,需要在哪儿选址;适合做什么项目;项目都有什么 功能,比如带不带花园,公益场所,游泳池这些;还得考察哪些工程队做过类似项目,项目的实施能力高 ,这样才能承包给他;再有就是后期的物业管理,都需要哪些部门,设什么项目。等等等等。 
以上这些,我觉得就是系统架构的内容。做这个项目前,要先了解这个项目,然后做一些选择,什么选择 呢?就是我该怎么做这个项目,采用c/s还是b/s,是j2ee啊还是用微软的体系,服务器用widows还是unix ,是用spring啊,还是只用struts框架,中间件websphere啊还是weblogic,等等等等。别看这些讲起来 空泛,做起来可是很多工作,经验积累对这个工作也很重要。因为你不单单是做单选题,你还要把你的选 择合起来。如果选择不当,不同的jdk版本,都有可能造成项目无法运行。

再说框架。房地产项目承包给了工程队,房地产商说了,我不管你怎么盖房子,但是盖出来的房子,得是

我们要的样子,并且质量要可靠。这些事对工程队来说是小菜一碟,人家整天盖房子,什么样的图纸盖出 什么样的房子,哪些地方拿什么样现成的门和窗户装上,熟得不能再熟了。 
对了,框架就是用来具体实现某一功能的工具,框架的部件能够重用,而且某一框架一般都只能解决某一 领域的问题。比如strtus是web框架的实现,如果做b/s项目,用他来实现web层真的不错。但是在c/s项目 里,他就一点儿用处都没有了。

最后是模式。工程队盖房子确实快,但是盖房子的图纸和那些成型的门,窗,楼板框架可不是他们自己整

出来的,他们只管用。有专门的设计人员在做这些事情。这些设计人员整天就想,盖出同样的房子,怎么 样做才能更省材料,怎么做才能更省时间,那些现成的门窗,框架,怎么设计才能实现最大的使用面积,等等。 
设计模式是包含在框架里的,就是用科学的方法来实现一个框架的功能。目的就是最大复用,最大功能实现,最方便调用。

转载于:https://www.cnblogs.com/hjlweilong/p/6418970.html

框架,架构,设计模式之区别相关推荐

  1. 框架和设计模式的区别

    框架和设计模式的区别 有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式.实际上它们完全是不同的概念. 框架.设计模式这两个概念总容易被混淆,其实它们之间还是有区别的.框架通常是代码重 ...

  2. 软件架构, 软件框架,设计模式的区别

    已剪辑自: https://segmentfault.com/a/1190000022489060 软件架构 软件的架构是系统的一个草图.阐述了各个组件之间的通讯.划分层次.一旦系统开始详细设计.架构 ...

  3. 框架与设计模式的区别

    很多时候,我们都分不清框架和设计模式到底有什么区别,下面是这两者的简单的区别介绍: 1.设计模式和框架所针对的领域不同: 设计模式针对面向对象的问题域,框架针对特定业务的问题域. 2.设计模式比框架更 ...

  4. PHP框架之间有什么区别,php框架和设计模式区别

    框架和设计模式的区别 有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式.实际上它们完全是不同的概念. 框架.设计模式这两个概念总容易被混淆,其实它们之间还是有区别的.(推荐学习:PH ...

  5. 架构、框架和设计模式关系

    在学习软件工程的时候,第一次接触到了架构这个概念.当初接触的时候对其的理解是非常浅薄的,因为那时候工程经验比较少,对这样一个深层次的概念还是模糊不清楚的. 随着学习的深入,开始接触了设计模式,也就是那 ...

  6. 框架模式和设计模式的区别

    框架模式和设计模式的区别 有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式.实际上它们完全是不同的概念.[7] 框架.设计模式这两个概念总容易被混淆,其实它们之间还是有区别的. 框架 ...

  7. 架构、框架、设计模式

    注:个人理解仅供参考 概念 架构: 简单的说架构就是一个蓝图,是一种设计方案,将客户的不同需求抽象成为抽象组件,并且能够描述这些抽象组件之间的通信和调用. 框架: 软件框架是项目软件开发过程中提取特定 ...

  8. 架构、框架和设计模式

    最近要填写项目经验,想把去年写的一个网站(Spring MVC)经验写上去装一下,刚百度了一个Spring MVC就搜出了一堆东西,然后想当然的搜了一个三层架构(这是学软件工程的时候提过的),以为就是 ...

  9. 框架模式与设计模式之区别

    http://my.oschina.net/u/991183/blog/109854  有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式.实际上它们完全是不同的概念. 框架.设计模式 ...

最新文章

  1. 下载和安装Nginx之普通的HTTP和HTTPS服务器
  2. 如何利用数据来支撑设计?
  3. 协议层次及其服务模型
  4. OpenGL 高级数据Advanced Data
  5. WPF中的Pack URI
  6. 机器学习——人工神经网络之后向传播算法(BP算法)
  7. MacBook/MacOS/Mac OS 查看进程/端口信息的相关命令
  8. 7-26 Windows消息队列
  9. hadoop应用开发技术..._Hadoop
  10. 取 GridView 里 点击当前行的 行数
  11. oracle定时清理回收站,电脑设置定时清理回收站的操作方法
  12. idea抽取重复方法快捷键_idea 常用快捷键
  13. bochs的安装和配置
  14. ubuntu打开网易云音乐
  15. ADC噪声全面分析 -02- ADC 噪声测量方法和相关参数
  16. intellij 取消svn 用户名 密码
  17. CF 1718 A2. Burenka and Traditions (hard version) 贪心 1900
  18. c++ http服务器之Apache工具ab压力测试(nginx与brpc)
  19. c语言调试时窗口一闪就没了,VS2012编译C语言代码运行出现黑框一闪就没了
  20. echarts为什么用getElementsByClassName()方法显示不了图表

热门文章

  1. Keeping your project under budget
  2. 汽车显示:曲面与平视显示
  3. 一个基础的3DRPG游戏
  4. 艾为数字ic面试题_国外的数字IC面试题(非常详细,有答案)
  5. Linux下Nignx的安装
  6. CVPR2020 GAN文章整理
  7. 英文抗生素药物医学知识图谱IASO1.0版发布 线上试用正式启动
  8. SpringCloud工程搭建之Eureka服务搭建(必选)
  9. 废旧手机改造之家居监控器
  10. [机器翻译] 记一次多语言机器翻译模型的训练