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

随着学习的深入,开始接触了设计模式,也就是那本令我爱上编程的书--《大话设计模式》,书中的小菜和大鸟的清晰的对白,让我犹如身临其境般,一点一点层层递进的认识设计模式,认识面向对象的引以为傲的设计原则。经过了很长时间的学习,深刻的发现设计模式的迷人之处,也感觉到了编程的艺术之美。

在之后,开始学习了SSH框架,第一次感觉到框架的好用之处,也再一次感概那些聪明的人们让编程变得更加轻松,也感慨那些聪明的人们对懒惰的执着和渴望。

其实以前学习的时候,对这三个东东的关系还真的不是非常清晰,总感觉他们非常像,却不太好说清楚他们之间的关系。现在随着不断的学习,不断的积累经验,也对这三者的关系有了个清楚的认识。下面总结一下他们之间的关系。

1.    概念

架构:简单的说架构就是一个蓝图,是一种设计方案,将客户的不同需求抽象成为抽象组件,并且能够描述这些抽象组件之间的通信和调用。

框架:软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型。框架不是现成可用的应用系统。而是一个半成品,提供了诸多服务,开发人员进行二次开发,实现具体功能的应用系统。

设计模式:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,它强调的是一个设计问题的解决方法。

2.    框架与架构关系

首先说框架不是架构,应该说框架比架构更具体,更偏重于技术,而架构偏重于设计。还有一个关系就是架构可以通过多种框架来实现。

3.    框架与设计模式关系

设计模式研究的是针对单一问题的设计思路和解决方法,一个模式可应用于不同的框架和被不同的语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体虽然它们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而设计模式的思想可以在框架设计中进行应用。

4.    架构与设计模式关系

两者的关系也是很好区分的,设计模式主要是针对单一问题的解决方法,范畴比较小,而架构是高层次的针对体系结构的一种设计思路,范畴比较大。可以这么说,一个架构中可能会出现多个设计模式来解决多种架构中的问题。

5.    总结

通过上面的分析,我们能够知道他们之间的区别还是有很多,首先架构应该是一个范畴最大的概念,是最高层次的设计。一个架构设计中可能会用到多个框架和多个设计模式;而框架是针对共性抽象出来的半成品,这里面可能包含着多个设计模式;而设计模式就是解决单一问题的设计思路和解决方法。

所以我们在做一个项目的时候首先出来的应该是架构,是对整个问题的一个总体上的设计,之后再会考虑运用什么样的框架和设计模式来实现我们的架构;当然,只使用框架和设计模式中的一种也是经常遇到的。

他们三者的共同点都是解决现实生活中的问题而出现的,而且在架构设计和框架设计还有设计模式中都会表现出来的就是“高内聚,低耦合”的理念;所以他们的共同点就是让我们的设计更面向对象化。

所以我们要想做好一个好的项目,那么架构设计、框架设计和使用、设计模式是非常重要的。

架构、框架和设计模式关系相关推荐

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

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

  2. 架构师成长之路:什么是软件框架?框架和设计模式什么关系?

    前面,已经把概要设计阶段要完成的任务和方法做了基本的讲述. 接下来看看如何做基础框架设计,在讲之前,我们先来统一一下对软件框架的认识:然后去理解框架和设计模式的关系,为后续的讲解做好准备. 一:什么是 ...

  3. 构架、框架、设计模式之间的关系简述

    一.软件体系结构和框架的定义 软件体系结构的英文单词是"architecture". Architecture的基本词义是建筑.建筑学.建筑风格. 软件体系结构虽然根植于软件工程, ...

  4. 什么是框架,框架和设计模式的关系,为什么要用框架?(转)

    文章出处:http://blog.csdn.net/cjyy1973/archive/2006/02/01/590553.aspx 框架是一个应用程序的半成品.框架提供了可在应用程序之间共享的可覆用的 ...

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

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

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

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

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

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

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

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

  9. 打死都要记住!微服务架构的常用设计模式!

    作者:duanxz 来源:cnblogs.com/duanxz/p/3514895.html 大家好,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许我休息一下哈).今天跟大家分享微服务架 ...

最新文章

  1. javascript 方法实例
  2. linux里与Ctrl组合使用的键
  3. 思路拓展,如果是用2D的方式去做切割
  4. JZOJ 5609. 【NOI2018模拟3.28】Tree BZOJ 4919: [Lydsy1706月赛]大根堆
  5. Windows10多桌面的理解和作用
  6. Spring Cloud:查看注册到Eureka上的应用信息
  7. 【转】Castle中AdditionalInterfaces用法介绍
  8. 建立副本名称冲突_包的建立(一)
  9. UI设计师素材干货|APP底部导航模板
  10. windows下替代SSH,Xshell软件的mobaxterm
  11. 漫谈Java IO之 NIO那些事儿
  12. [Buzz Today]2012.05.10
  13. BOS物流项目02———创建项目
  14. win10的windows聚焦不显示,灰屏解决方案
  15. python gpu加速库比matlab快吗_Python之Unittest和Requests库详解
  16. Netural Machine Translation By Joinly Learning To Align And Translate
  17. 区别重要的事情及不要盲目增加计划提前期
  18. 互联网协议 — Ethernet — 网络数据报文的传输方式
  19. [Perl]如何取绝对路径:FindBin模块和Cwd模块用法和区别
  20. S71200西门子PLC一个设计的接线图

热门文章

  1. 洛谷 P1852 奇怪的字符串
  2. getDate()返回日期不一致问题引发的bug
  3. poj 2503 Trie树
  4. oracle性能优化之awr分析
  5. mysql command line client闪一下消失
  6. ATL WTL 实现分析(五)
  7. 关于SOAP的几篇文章
  8. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]46.Sigma协议正确性、公正性和零知识性
  9. sql如何遍历几百万的表_SQL Server遍历表中记录的2种方法(使用表变量和游标)
  10. 多个html如何套用套一个头部,Vue.js项目中管理每个页面的头部标签的两种方法...