本文面向玩代码玩的蛋疼的读者。
库和框架都是一种有别于软件、面向程序开发者的产品形式。正因为如此,也有很多人误以为库就是框架,或者认为指定语言的库就是框架。
库的英语为 Library ( 简写 Lib ),框架的英语为 Framework。
库是将代码集合成的一个产品,供程序员调用。面向对象的代码组织形式而成的库也叫类库。面向过程的代码组织形式而成的库也叫函数库。
在函数库中的可直接使用的函数叫库函数。开发者在使用库的时候,只需要使用库的一部分类或函数,然后继续实现自己的功能。
框架则是为解决一个(一类)问题而开发的产品,框架用户一般只需要使用框架提供的类或函数,即可实现全部功能。可以说,框架是库的升级版。
开发者在使用框架的时候,必须使用这个框架的全部代码。
框架和库的比较可以想像为:
假如我们要买一台电脑。框架为我们提供了已经装好的电脑,我们只要买回来就能用,但你必须把整个电脑买回来。这样用户自然轻松许多,但会导致
很多人用一样的电脑,或你想自定义某个部件将需要修改这个框架。而库就如自己组装的电脑。库为我们提供了很多部件,我们需要自己组装,如果某个部件
库未提供,我们也可以自己做。库的使用非常灵活,但没有框架方便。
框架通过封装处理流程的控制逻辑,使它对开发者透明,来简化开发工作。这种封装也是框架和类库(class library)的区别之一。类库由许多现成的、供开发者用于构建应用的组件组成,但是,开发者必须理解不同组件之间的关系,并编写处理流程代码把众多组件组织起来。框架则不同,它通过预先把众多组件组织在一起的方式,封装了处理流程的控制逻辑;因此,开发者就不用再编写控制逻辑来组织组件之间的交互了。……
……应用开发者使用类库这种方法时,必须编写管理类库中不同组件实例(instance)的控制流程。为此,应用开发者必须充分理解每个相关组件,以及组织组件协作所必需的业务逻辑。而使用框架这种方法时,由于大部分处理流程已经被框架管理了起来,所以开发者需要编写的控制代码就非常少。由于应用框架隐藏了不同组件之间的处理流程,这就免去了开发者编写协调逻辑(coordination logic)之苦,也不用经历编写这些协调代码的学习曲线了。既然处理流程的控制逻辑从应用层移到了应用框架层,那么框架的设计人员就要运用其架构和领域知识,来定义框架内的组件该如何协作;而使用框架的开发者,几乎无须知道框架组件如何协作,就能高效地开发应用。
由此可见,从重用的角度来比较,框架提供的重用性比类库更大。类库的目标是提供通用的类,如果是Utility类的情况(包含多个static方法),将其目标理解成提供通用的函数(就像C语言时代的函式库一样)也未尝不可;而框架的目标是提供在某领域内通用的软件系统半成品(或子系统半成品)。
相关推荐
在实际项目中,View UI可以与其他前端工具和库(如jQuery、Axios等)结合使用,以增强功能或解决特定问题。同时,为了方便团队协作和版本控制,开发者应该将View UI的使用整合到版本管理系统(如Git)中,确保代码的...
使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库...
C++框架是用于开发应用程序的框架,它提供了一系列的库和工具,帮助开发者快速开发应用程序。Apache C++ Standard Library是一个通用的C++库,提供了一系列的算法、容器、迭代器和其他基本组件。 ASL(Adobe源代码...
这个框架集成了控件库、工具类库、扩展类库和多页面开发框架,旨在提升开发效率,优化用户体验,为桌面应用程序的构建提供强大的支撑。 首先,SunnyUI.NET的核心优势在于其丰富的控件库。控件库包含了各种常见和...
在Python中,有多种框架和第三方库被广泛应用于不同的领域,从Web开发到科学计算,从网页爬虫到游戏制作,无所不包。 一、Web框架 Web开发是Python应用的一个重要方向,以下是一些在Python社区中广泛使用的Web框架...
为了运行这个框架,用户首先需要安装Python 2.7环境,并根据项目文档的指示安装依赖库,如requests、redis和mysql-connector-python等。然后,根据自己的需求编写或修改签到脚本,配置数据库连接(如果需要),最后...
英特尔 优化的人工智能库和框架.pdf
总的来说,Python的标准库、三方库和框架构建了强大的生态系统,使得Python能够胜任各种任务,从简单的脚本编写到复杂的软件开发。通过学习和使用这些资源,开发者可以提高效率,实现更复杂的功能,从而在编程世界中...
该项目是Hagworm框架的源码,采用原生框架和库的中间层设计,包含94个文件,涵盖80个Python源代码文件、4个Shell脚本文件、2个Markdown文件、2个映射文件、1个Git忽略文件、1个许可证文件、1个YAML文件、1个...
思维框架和逻辑是指思维是一个具备内在框架和逻辑的系统工程,思维覆盖了学习、认知、问题解决和复盘,知识库多个维度的内容。通过学习形成基础个人知识库,同时认知和解决问题实践验证,同时通过复盘转换为自我方法...
git上源码编译太久,提供一个库方便直接使用,内部包括Windows和macOS两个系统的。 gRPC 是一种现代、开源、高性能的远程过程调用 (RPC) 框架,可以在任何地方运行。gRPC 使客户端和服务器应用程序能够透明地通信,...
综上所述,ACL框架库是一个全面的C语言开发工具,涵盖了网络服务器开发的各个方面,不仅提供了底层的通信机制,还包括了数据处理和资源管理的高级工具,为开发者构建复杂的网络应用提供了坚实的基础。学习和掌握ACL...
C# 教学资料 从基础只是到高级应用都有所讲解 ...首先介绍了Microsoft .NET Framework的框架,以及公共语言运行库、.NET Framework类库、ADO.NET和Web服务的特点。接着讲述了命名空间的基本定义和常用的类型。
本文将深入探讨名为“MNVVisionCk”的Halcon视觉通用框架,该框架的出现极大地简化了Halcon的使用,并提供了丰富的预封装算子和停靠功能,旨在提升开发效率和用户体验。 首先,我们要理解Halcon框架的概念。框架在...
这个框架利用了微软的Enterprise Library(企业库)来提供数据访问、事务处理、日志记录等核心功能,旨在简化开发过程,提高代码的可维护性和可扩展性。 【描述】:“代码见:...
移动端H5 UI框架是开发移动应用网页界面的重要工具,它为开发者提供了预设计的组件、样式和布局,以便快速构建美观且响应式的用户界面。在本文中,我们将深入探讨这个主题,了解H5 UI框架的基本概念,以及如何利用...
基于C++ module库 Protobuf Zookeeper 实现的Rpc框架.zip基于C++ module库 Protobuf Zookeeper 实现的Rpc框架.zip基于C++ module库 Protobuf Zookeeper 实现的Rpc框架.zip基于C++ module库 Protobuf Zookeeper 实现...
思维框架和逻辑是系统工程,它覆盖了学习、认知、问题解决和复盘、知识库多个维度的内容。本文档将学习方法和模式、个人知识库、思维框架逻辑和总结复盘四个方面进行了详细的阐述。 01. 学习方法和模式 学习方法和...
该框架库包含了丰富的类和方法,用于管理智能卡读卡器、选择卡片、执行APDU命令(Application Protocol Data Unit,智能卡与读卡器之间交换数据的协议)等操作。例如,`CardConnect`方法用于连接到智能卡读卡器,`...
j2me 开发框架介绍 j2me 是一种用于开发无线应用程序的平台,它...这些框架和库都可以用于简化 J2ME 应用程序的开发过程,提高开发效率。但是,在选择框架时,需要根据项目的需求和特点进行选择,以确保项目的成功。