一、软件体系结构和框架的定义
软件体系结构的英文单词是“architecture”. Architecture的基本词义是建筑、建筑学、建筑风格。
软件体系结构虽然根植于软件工程,但还处于一个研究发展的阶段,迄今为止还没有一个为大家所公认的定义。
《设计模式》中对框架的定义是框架就是一组相互协作的类,对于特定的一类软件,框架构成了一种可重用的设计。
软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型。框架的作用在于:由于提取了特定领域软件的共性部分,因此在此领域内新项目的开发过程中代码不需要从头编写,只需要在框架的基础上进行一些开发和调整便可满足要求;对于开发过程而言,这样做会提高软件的质量,降低成本,缩短开发时间,使开发越做越轻松,效益越做越好,形成一种良性循环。
框架不是现成可用的应用系统。是一个半成品,需要后来的开发人员进行二次开发,实现具体功能的应用系统。框架不是“平台”,平台概念比较模糊可以是一种操作系统,一种应用服务器,一种数据库软件,一种通讯中间件等地那个,因此平台在应用平台主要指提供特定服务的系统软件,而框架更侧重了设计,开发过程,或者可以说,框架通过调用平台提供的服务而起的作用。
框架不是工具包或者类库,调用API并不就是在使用框架开发,紧紧使用API是,开发者完成系统的主题部分,并不时地调用类库实现特定任务。而框架构成了通用的、具有一般性的系统主体部分,二次开发人员只是像做填空一样,根据具体业务,完成特定应用系统中与众不同的特殊部分。
二、框架与架构之间的关系
框架不是构架(即软件体系机构)。体系结构确定了系统整体结构、层次划分,不同部分之间的协作等设计考虑。框架比架构更具体。更偏重于技术涉嫌。确定框架后,软件体系结构也随之确定,而对于同一软件体系结构(比如Web开发中的MVC),可以通过多种框架来实现。
三、框架与设计模式之间的关系
设计模式和框架在软件设计中是两个不同的研究领域。设计模式研究的是一个设计问题的解决方法,一个模式可应用于不同的框架和被不同的语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体虽然它们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而设计模式的思想可以在框架设计中进行应用。
框架和设计模式存在着显著的区别,主要表现在二者提供的内容和致力应用的领域。
1)从应用领域上分,框架给出的是整个应用的体系结构;而设计模式则给出了单一设计问题的解决方案,并且这个方案可在不同的应用程序或者框架中进行应用。
2)从内容上分,设计模式仅是一个单纯的设计,这个设计可被不同语言以不用方式来实现;而框架则是设计和代码的一个混合体,编程者可以用各种方式对框架进行扩展,进而形成完整的不同的应用。
3)以第二条为基础,可以得出设计模式比框架更容易移植:框架一旦设计成形,虽然还没有构成完整的一个应用,但是以其为基础进行应用的开发显然要受制于框架的实现环境;而设计模式是与语言无关的,所以可以在更广泛的异构环境中进行应用。
总之,框架是软件,而设计模式是软件的知识体,提升框架的设计水平。

link

构架、框架、设计模式之间的关系简述相关推荐

  1. 知识工程.Vs.软件构架,框架,设计模式.

    软件工程-原文链接:http://tech.it168.com/a2009/0902/672/000000672853.shtml 此文章详细给出了软件设计的基本概念和用途,文章链接:http://w ...

  2. Cocoa框架类之间继承关系

    在Cocoa开发中是必要的,至于其它框架(如:Core Data.Sync Services.Address Book.Preference Panes.Screen Saver.Web Kit)则是 ...

  3. Java设计模式、框架、架构、平台之间的关系

     1.设计模式 为什么要先说设计模式?因为设计模式在这些概念中是最基本的,而且也比较简单.那么什么是设计模式呢?说的直白点,设计模式就是告诉你针对特定问题如何组织类.对象和接口之间的关系,是前人总结的 ...

  4. html与css与php的关系,HTML、PHP、CSS、JS之间的关系

    23:02:06 2019-08-05 自己要搭建网站 虽然可以下载大佬的界面 但至少要懂一点web开发的知识 我现在感觉像个憨憨 啥都不明白 HTML负责放你需要显示的内容, 而PHP可以输出可变化 ...

  5. 简述机器指令与微指令之间的关系_技术动态 | 跨句多元关系抽取

    第一部分 概述 关系抽取简介 关系抽取是从自由文本中获取实体间所具有的语义关系.这种语义关系常以三元组 <E1,R,E2> 的形式表达,其中,E1 和E2 表示实体,R 表示实体间所具有的 ...

  6. 一文读懂Python web框架和web服务器之间的关系

    我们都知道 Python 作为一门强大的语言,能够适应快速原型和较大项目的制作,因此被广泛用于 web 应用程序的开发中. 在面试的过程中,大家或多或少都被问到过这样一个问题:一个请求从浏览器发出到数 ...

  7. [UE][UE5]Gameplay框架,Actor,pawn,playerController(玩家控制器),Character(角色)之间的关系

    [UE][UE5]Gameplay框架,actor,pawn,playerController,Character之间的关系 Actor,pawn,playerController(玩家控制器),Ch ...

  8. J2EE高级开发框架小课程之Spring框架2——Spring容器作用域,生命周期,Spring管理对象之间依赖关系

    Spring容器作用域 Spring创建对象的作用域:Spring在创建对象时,默认只创建一个(单例模式) scope: singleton(默认 单例) 构造器就一次,结果true prototyp ...

  9. 【设计模式学习笔记】类图:类与类之间的关系

    目录 一.UML统一建模语言简介 二.类图 三.类与类之间的关系 1. 泛化关系 2. 实现关系 3.  依赖关系 4. 关联关系 5. 聚合关系 6. 组合关系 四.小结 一.UML统一建模语言简介 ...

最新文章

  1. [30期] 第一个项目
  2. curl 与 httpie 命令
  3. secureCRT The remote system refused the connection. .
  4. bert中文预训练模型_HFL中文预训练系列模型已接入Transformers平台
  5. SpringBatch处理适配器ItemProcessorAdapter详解
  6. java中注解的解析_【Java】中的注解与注解解析器
  7. 不用空格怎么打两个空格_韩语空格怎么空?90%的韩语初学者都会出错!
  8. php极差平级,平行志愿有级差吗志愿极差是什么
  9. mysql grant命令详解_mysql grant命令详解 设置mysql远程连接
  10. Qt中文件读写进文本框出现乱码问题详解(gbk格式出现乱码为例)
  11. winform5、高清屏下字体模糊的解决方法
  12. The Book of Mozilla
  13. jmeter分布式部署
  14. html5一个可拖动的图片大小,HTML5画布中的可拖动和可调整大小元素
  15. vlan的理解以及华为access、trunk、hybrid三种链路对比
  16. 递归求地铁两站间最短路径
  17. Python 蓝桥杯试题 基础练习 特殊回文数
  18. chrome:initiator使用
  19. from用法 prepare_MySQL之prepare用法
  20. [tcpreplay] tcpreplay高级用法--使用tcpreplay-edit进行循环动态发包

热门文章

  1. 云炬随笔20161117
  2. OpenGL编程指南10:组合运动示例1—创建太阳系模型
  3. IIR+双向滤波实现系统零相位相移_MATLAB仿真
  4. oracle - emctl start dbconsole
  5. java连接各数据库的语句
  6. 编写好代码的10条戒律
  7. 【CyberSecurityLearning 6】IIS之WEB服务器和FTP服务器
  8. super 与 this 关键字
  9. 问题解决:无法获得锁 /var/lib/dpkg/lock
  10. Keil Debug(printf) Viewer的使用