软件框架和类库的区别

本文源自《.NET通信框架的设计、实现与应用》书稿第一章内容

类库是一些类的集合,只要我们将一些可以复用的类集中放到一个Library中,我们就可以称其为一个类库。

类库中的许多元素(如类、结构、接口、枚举、委托等)之间可能有一些关联,但这些关联通常用于支持一个类概念或接口概念的完整表达。

如果我们从一个更高的视角来审视类库,可以发现类库中的一个个“完整的概念”之间是无关的或是关系松散的。

再来说框架,框架的第一含义是一个骨架,它封装了某领域内处理流程的控制逻辑,所以我们经常说框架是一个半成品的应用。

由于领域的种类是如此众多,所以框架必须具有针对性,比如,专门用于解决底层通信的框架,或专门用于医疗领域的框架。

框架中也包含了很多元素,但是这些元素之间关系的紧密程度要远远大于类库中元素之间的关系。框架中的所有元素都为了实现一个共同的目标而相互协作。

框架与类库的区别主要表现在以下几个方面:
(1)从结构上说,框架内部是高内聚的,而类库内部则是相对松散的。

(2)框架封装了处理流程的控制逻辑,而类库几乎不涉及任何处理流程和控制逻辑。

框架中的处理流程和控制逻辑需要经过精心的设计,因为所有使用了该框架的应用程序都会复用该设计。

(3)框架具有IOC(控制反转)能力,而类库没有。IOC,即俗称的好莱坞模式(Don’t
call us, we will call
you)。

对于类库中的元素来说,通常都是由我们的应用来调用它;

而框架具有这种能力――在适当的时候调用我们应用中的逻辑。这种能力是通过框架扩展点(或称为“插槽”)来做到的――具体的应用通过扩展点注入自己的逻辑,而在适当的时候,框架会调用这个扩展点中已注册的逻辑。

(4)框架专注于特定领域,而类库却是更通用的。

框架着力于一个特定领域的解决方案的完整表达,而类库几乎不针对任何特定领域。比如,本书中提到的通信框架只适用于需要在TCP/UDP基础上直接构建通信的应用程序,而像正则表达式这样的类库却可以使用在各种不同的应用中。

(5)框架通常建立在众多类库的基础之上,而类库一般不会依赖于某框架。

时间: 2024-11-07 00:04:18

软件框架和类库的区别的相关文章

atitit.提升研发效率的利器---重型框架与类库的区别与设计原则

1. 框架的意义---设计的复用 1 1.1. 重型框架就是it界的重武器. 1 2. 框架 VS. 库 可视化图形化 1 2.1. 类库 2 2.2. 应用框架 2 2.3. 框架与类库的区别主要表现在以下几个方面: 2 2.4. 框架模式就是参团游,而自由行则类似于库的组合 3 3. 框架的特点 3 3.1.  没有一个万能的框架 3 3.2. 框架是不可组合的 3 3.3. 框架设计的俩个方向::全栈式与精细化 4 4.  框架设计经验.原则 4 4.1. 通用框架与应用框架 4 4.2.

框架与类库的区别(转载)

发现一片不错的文章,内容全是转载. 一起来看吧. ********************** 框架和类库等概念的出现都是源于人们对复用的渴望.“不要重复发明轮子”,成了软件界的一句经典名言.从最初的单个函数源代码的复用,到面向对象中类的复用(通常以类库的形式体现),再到基于组件编程中二进制组件(.NET中是以IL程序集形式存在的)的复用,人们复用软件的抽象层次越来越高.现在,框架复用是抽象层次的又一提升,框架的复用不仅仅是功能的复用,更是设计的复用. 1.1 框架与类库的区别 我们先来简单说说

软件框架和软件架构的区别?

初学java,遇到jdk,sdk概念:软件开发工具包(外语首字母缩写:SDK.外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件时的开发工具的集合. 软件包:(SoftWare Package)是指具有特定的功能,用来完成特定任务的一个程序或一组程序. 开发工具:包含编辑.编译.解释执行(C中是链接执行)等功能. 一.软件框架 ?软件框架是面向领域(如ERP.计算领域等)的.可复用的"半成品"软件

也谈设计模式,架构,框架和类库的区别

看了廖大的<设计模式,框架,架构>http://www.dualface.com/blog/?p=546感觉受益良多,下面我打算用一个比方来诠释我的理解 我类比的例子是盖房子,我先从设计模式说起.人类从住山洞到现在的住高楼大厦中间的居住形态经历了无数次的演变,不同的 人用自己的智慧诠释了对居住环境的理解,并且由于有了文字这些经验都被记录下来了.现在打个比方,如果让学计算机的你在一个深 山老林里,什么都不给你,你能盖出什么样的房子呢?我猜肯定是什么也盖不出来,只能去睡山洞了,为什么呢,因为你什么

atitit.提升研发管理的利器---重型框架 框架 类库的区别

atitit.提升研发管理的利器---重型框架 框架 类库的区别 1. 重型框架就是it界的重武器. 1 2. 框架 VS. 库 可视化图形化 1 3. 应用框架 1 4. 类库 2 5. 框架是不可组合的 2 6. 框架设计的俩个方向::全栈式与精细化 2 7. 选择框架还是库..可组合的库 3 8. 在最后 3 1. 重型框架就是it界的重武器. 2. 框架 VS. 库 可视化图形化 框架和库有什么区别呢?两者的主要不同之处在于如何使用它们以及编写什么样的代码. · 框架--框架控制了系统的

类库、框架、平台的区别

今天在网上看到一些诸如<EXT框架入门>.<精通JS脚本之ExtJS框架>之类的文章,里面讲的却是EXTJS类库的使用,内容与标题明显不符,类库和框架,虽然有联系,但它们的区别也很大,为此我把自己的理解贴出出来供大家参考.由于框架与平台两个概念也经常被放在了一起,因此也一并表述. 1.概念 类库:一组有关联关系的类的集合,离最终产品较远,如EXTJS类库,JQuery类库.SOCKET类库等. 框架:一组有关联关系的类库的有效整合,离最终产品较近,如Qt..NET Framewor

【转】2017年前端框架、类库、工具大比拼

原文链接:https://www.sitepoint.com/top-javascript-frameworks-libraries-tools-use/ 源于:葡萄城控件 欢迎大家持续关注葡萄城控件技术团队博客,更多更好的原创文章尽在这里~~ 相比于JavaScript开发人员的数量,目前JavaScript框架.类库和工具的数量似乎更多一些.截至2017年5月,GitHub上的快速搜索显示,有超过110万个JavaScript项目.npmjs.org有50万个可用的软件包,每月下载量近100

2017年前端框架、类库、工具大比拼

相比于JavaScript开发人员的数量,目前JavaScript框架.类库和工具的数量似乎更多一些.截至2017年5月,GitHub上的快速搜索显示,有超过110万个JavaScript项目.npmjs.org有50万个可用的软件包,每月下载量近100亿次. 本文将会讨论目前最为流行的客户端JavaScript框架.类库和工具以及它们之间的基本差异.也许本文无法告诉你哪个是最好的,但是最适合自己项目的,就是最好的. 类库 类库是一个有组织的功能集合.典型的类库包括字符串处理.日期.HTML D

软件框架

软件框架 最近做了一个软件,这个软件不是网站,但是与HTML,AJAX等技术密切相关,也不是只有单纯的数据库增删改查,还涉及到线程协调,比较复杂的文本处理…… 这样的软件,用OA,ERP的框架显然是不合适的,因为这种软件用不上权限管理,工作流这些技术.但是软件又要操作数据库. 介于这些的特殊性,想来想去,还是自己搭建一个轻量级的软件框架是比较好的. 一:C/S与B/S的选择 1,我做的是一个购物网站的刷单软件,有如下几个方面的原因,我选择了C/S程序 a,刷单软件需要长时间的运行,不定时,不间断