本文面向玩代码玩的蛋疼的读者。
库和框架都是一种有别于软件、面向程序开发者的产品形式。正因为如此,也有很多人误以为库就是框架,或者认为指定语言的库就是框架。
库的英语为 Library ( 简写 Lib ),框架的英语为 Framework。
库是将代码集合成的一个产品,供程序员调用。面向对象的代码组织形式而成的库也叫类库。面向过程的代码组织形式而成的库也叫函数库。
在函数库中的可直接使用的函数叫库函数。开发者在使用库的时候,只需要使用库的一部分类或函数,然后继续实现自己的功能。
框架则是为解决一个(一类)问题而开发的产品,框架用户一般只需要使用框架提供的类或函数,即可实现全部功能。可以说,框架是库的升级版。
开发者在使用框架的时候,必须使用这个框架的全部代码。
框架和库的比较可以想像为:
假如我们要买一台电脑。框架为我们提供了已经装好的电脑,我们只要买回来就能用,但你必须把整个电脑买回来。这样用户自然轻松许多,但会导致
很多人用一样的电脑,或你想自定义某个部件将需要修改这个框架。而库就如自己组装的电脑。库为我们提供了很多部件,我们需要自己组装,如果某个部件
库未提供,我们也可以自己做。库的使用非常灵活,但没有框架方便。
框架通过封装处理流程的控制逻辑,使它对开发者透明,来简化开发工作。这种封装也是框架和类库(class library)的区别之一。类库由许多现成的、供开发者用于构建应用的组件组成,但是,开发者必须理解不同组件之间的关系,并编写处理流程代码把众多组件组织起来。框架则不同,它通过预先把众多组件组织在一起的方式,封装了处理流程的控制逻辑;因此,开发者就不用再编写控制逻辑来组织组件之间的交互了。……
……应用开发者使用类库这种方法时,必须编写管理类库中不同组件实例(instance)的控制流程。为此,应用开发者必须充分理解每个相关组件,以及组织组件协作所必需的业务逻辑。而使用框架这种方法时,由于大部分处理流程已经被框架管理了起来,所以开发者需要编写的控制代码就非常少。由于应用框架隐藏了不同组件之间的处理流程,这就免去了开发者编写协调逻辑(coordination logic)之苦,也不用经历编写这些协调代码的学习曲线了。既然处理流程的控制逻辑从应用层移到了应用框架层,那么框架的设计人员就要运用其架构和领域知识,来定义框架内的组件该如何协作;而使用框架的开发者,几乎无须知道框架组件如何协作,就能高效地开发应用。
由此可见,从重用的角度来比较,框架提供的重用性比类库更大。类库的目标是提供通用的类,如果是Utility类的情况(包含多个static方法),将其目标理解成提供通用的函数(就像C语言时代的函式库一样)也未尝不可;而框架的目标是提供在某领域内通用的软件系统半成品(或子系统半成品)。
相关推荐
在实际项目中,View UI可以与其他前端工具和库(如jQuery、Axios等)结合使用,以增强功能或解决特定问题。同时,为了方便团队协作和版本控制,开发者应该将View UI的使用整合到版本管理系统(如Git)中,确保代码的...
1、总体软件架构:MC SDK 5.x架构可分为三个主要部分:芯片外设库、电机库和电机应用层。芯片外设库使用STHAL/LL库,它对STM32的外设进行封装,提供给各个层级调用。电机库是核心控制层,负责实现电机的FOC(矢量控制...
使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库...
标题 "uistack:一个Chrome扩展程序,揭示网站使用的框架和库" 描述了一个实用工具,它专门设计用于帮助开发者识别和分析网页所采用的前端技术栈。这个Chrome扩展程序,即ui-stack,使得用户能够快速、便捷地洞察...
C++框架是用于开发应用程序的框架,它提供了一系列的库和工具,帮助开发者快速开发应用程序。Apache C++ Standard Library是一个通用的C++库,提供了一系列的算法、容器、迭代器和其他基本组件。 ASL(Adobe源代码...
这个框架集成了控件库、工具类库、扩展类库和多页面开发框架,旨在提升开发效率,优化用户体验,为桌面应用程序的构建提供强大的支撑。 首先,SunnyUI.NET的核心优势在于其丰富的控件库。控件库包含了各种常见和...
在Python中,有多种框架和第三方库被广泛应用于不同的领域,从Web开发到科学计算,从网页爬虫到游戏制作,无所不包。 一、Web框架 Web开发是Python应用的一个重要方向,以下是一些在Python社区中广泛使用的Web框架...
英特尔 优化的人工智能库和框架.pdf
总的来说,Python的标准库、三方库和框架构建了强大的生态系统,使得Python能够胜任各种任务,从简单的脚本编写到复杂的软件开发。通过学习和使用这些资源,开发者可以提高效率,实现更复杂的功能,从而在编程世界中...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和...试题库管理系统源码+项目说明(基于SSM框架开发的Java Web MIS系统).zip
为了运行这个框架,用户首先需要安装Python 2.7环境,并根据项目文档的指示安装依赖库,如requests、redis和mysql-connector-python等。然后,根据自己的需求编写或修改签到脚本,配置数据库连接(如果需要),最后...
使用场景及目标:本文档旨在为Python开发者提供一站式的学习和开发资源,帮助他们更好地理解和使用各种工具和库,提高开发效率和项目质量。 阅读建议:初学者可以从官方文档和在线课程开始,逐步深入学习各个库和...
git上源码编译太久,提供一个库方便直接使用,内部包括Windows和macOS两个系统的。 gRPC 是一种现代、开源、高性能的远程过程调用 (RPC) 框架,可以在任何地方运行。gRPC 使客户端和服务器应用程序能够透明地通信,...
本文档主要介绍了基于GDAL库的遥感图像处理软件的框架设计方法,旨在帮助初学者快速学习和掌握GDAL库的使用。GDAL库是一个开源的栅格空间数据转换库,支持多种遥感数据格式,能够轻松解决遥感数据读取的难题。 通过...
内容概要:本文介绍了Python开发中的常用库和框架,涵盖Web开发、数据分析与科学计算、机器学习与深度学习等领域。同时详细列出了开发工具与IDE,版本控制工具,官方文档、在线教程和社区资源,以及Python Package ...
本文将深入探讨名为“MNVVisionCk”的Halcon视觉通用框架,该框架的出现极大地简化了Halcon的使用,并提供了丰富的预封装算子和停靠功能,旨在提升开发效率和用户体验。 首先,我们要理解Halcon框架的概念。框架在...
Java 速率限制库/框架Ratelimiter4j特征RateLimiter是一个高度容错、低延迟、高性能的限流开发库/框架,提供了对HTTP接口的访问限流功能。其特点提供了多种灵活的配置方式,同时支持零配置纯编程使用模式yaml、json...
Axure 8 Web前端+移动前端+后台+元件库+交互原型+系统框架.zipAxure 8 Web前端+移动前端+后台+元件库+交互原型+系统框架.zipAxure 8 Web前端+移动前端+后台+元件库+交互原型+系统框架.zipAxure 8 Web前端+移动前端+...
思维框架和逻辑是系统工程,它覆盖了学习、认知、问题解决和复盘、知识库多个维度的内容。本文档将学习方法和模式、个人知识库、思维框架逻辑和总结复盘四个方面进行了详细的阐述。 01. 学习方法和模式 学习方法和...
移动端H5 UI框架是开发移动应用网页界面的重要工具,它为开发者提供了预设计的组件、样式和布局,以便快速构建美观且响应式的用户界面。在本文中,我们将深入探讨这个主题,了解H5 UI框架的基本概念,以及如何利用...