`

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

阅读更多
一、软件体系结构和框架的定义

软件体系结构的英文单词是“architecture”. Architecture的基本词义是建筑、建筑学、建筑风格。

软件体系结构虽然根植于软件工程,但还处于一个研究发展的阶段,迄今为止还没有一个为大家所公认的定义。

《设计模式》中对框架的定义是框架就是一组相互协作的类,对于特定的一类软件,框架构成了一种可重用的设计。

软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型。框架的作用在于:由于提取了特定领域软件的共性部分,因此在此领域内新项目的开发过程中代码不需要从头编写,只需要在框架的基础上进行一些开发和调整便可满足要求;对于开发过程而言,这样做会提高软件的质量,降低成本,缩短开发时间,使开发越做越轻松,效益越做越好,形成一种良性循环。

框架不是现成可用的应用系统。是一个半成品,需要后来的开发人员进行二次开发,实现具体功能的应用系统。框架不是“平台”,平台概念比较模糊可以是一种操作系统,一种应用服务器,一种数据库软件,一种通讯中间件等地那个,因此平台在应用平台主要指提供特定服务的系统软件,而框架更侧重了设计,开发过程,或者可以说,框架通过调用平台提供的服务而起的作用。

框架不是工具包或者类库,调用API并不就是在使用框架开发,紧紧使用API是,开发者完成系统的主题部分,并不时地调用类库实现特定任务。而框架构成了通用的、具有一般性的系统主体部分,二次开发人员只是像做填空一样,根据具体业务,完成特定应用系统中与众不同的特殊部分。

二、框架与架构之间的关系

框架不是构架(即软件体系机构)。体系结构确定了系统整体结构、层次划分,不同部分之间的协作等设计考虑。框架比架构更具体。更偏重于技术涉嫌。确定框架后,软件体系结构也随之确定,而对于同一软件体系结构(比如Web开发中的MVC),可以通过多种框架来实现。

三、框架与设计模式之间的关系

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

框架和设计模式存在着显著的区别,主要表现在二者提供的内容和致力应用的领域。

1)、从应用领域上分,框架给出的是整个应用的体系结构;而设计模式则给出了单一设计问题的解决方案,并且这个方案可在不同的应用程序或者框架中进行应用。

2)、从内容上分,设计模式仅是一个单纯的设计,这个设计可被不同语言以不用方式来实现;而框架则是设计和代码的一个混合体,编程者可以用各种方式对框架进行扩展,进而形成完整的不同的应用。

3)、以第二条为基础,可以得出设计模式比框架更容易移植:框架一旦设计成形,虽然还没有构成完整的一个应用,但是以其为基础进行应用的开发显然要受制于框架的实现环境;而设计模式是与语言无关的,所以可以在更广泛的异构环境中进行应用。

总之,框架是软件,而设计模式是软件的知识体,提升框架的设计水平。
分享到:
评论
1 楼 ltian 2009-06-03  
你总结的真不错!
框架不是平台,我理解的平台是框架和工具的组合。一般能称之为平台的产品,必然能够支持二次开发,它含有一个或多个框架。同时它还有一系列的工具软件用于配置和管理。

相关推荐

    《软件体系结构课程》试卷A及答案.docx

    3. **架构风格与设计模式、框架之间的区别** - 这三个概念各有侧重: - **架构风格**关注于系统的整体结构和行为模式; - **设计模式**是解决特定设计问题的通用解决方案; - **框架**提供了一个具体的实现基础...

    OAF(oracle application framework)经典入门教程

    在学习OAF之前,需要了解OAF的MVC构架,MVC是一个基于组件的设计模式,M代表的是Module层,用于执行应用逻辑处理;V代表的是View层,是应用功能的用户操作界面;C代表的是Control层,用于处理用户界面操作和业务流转...

    智能小区与解决与方案.docx

    4.4.1 系统构架这部分会展示小区智能系统的整体框架,包括各个子系统(如视频监控、门禁系统、智能家居等)如何相互连接和协同工作。4.4.2 平台构架则会深入到软件层面,描述数据处理、用户交互、设备管理等功能模块...

    智慧环卫建设方案2017.1.6.pdf

    框架构建基准和设计主要围绕数据字典管理、GIS地理信息系统、信息安全、GPS定位、RFID应用、视频监控、传感监测、垃圾清运、清扫保洁、调度管理、业务巡检、工作流、物资管理、基建项目、财务管理和党建云等多个方面...

    java面试题

    答:单例模式是一种比较常见的设计模式,带给我们以下好处: 1:控制资源的使用 2:控制实例的产生数量 3:让多个不相关的两个线程或进程之间实现通信 为什么要用spring? 答:1、主要将各个框架有效的联系起来...

    超级有影响力霸气的Java面试题大全文档

    重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,...

    ARM嵌入式系统实验教程(二)附加实验教程

    - **访问SD/MMC卡的SPI模式硬件电路设计**:提供了SPI模式下SD/MMC卡的电路设计方案。 - **ZLG/SD软件包的文件结构及整体构架** - **文件组成**:列出软件包中包含的主要文件和目录结构。 - **整体框架**:概述了...

    ARM嵌入式系统实验教程

    - **ZLG/SD软件包的文件结构及整体构架**:概述了ZLG/SD软件包的组成结构及其整体框架。 - **ZLG/SD软件包的使用说明**:指导用户如何配置硬件并使用ZLG/SD软件包提供的API函数来访问SD/MMC卡。 #### 第5章:ISP...

Global site tag (gtag.js) - Google Analytics