Andrew Kachalin Asked:2020-11-01 20:28:47 +0000 UTC2020-11-01 20:28:47 +0000 UTC 2020-11-01 20:28:47 +0000 UTC 框架、库和 API 之间的区别? 772 那么框架、库和API之间的真正区别是什么?有一种观点认为,所有这些都是紧密的概念,到处都有可以构建到客户端代码中的类和方法。然而,似乎存在显着差异? framework 8 个回答 Voted Best Answer VladD 2020-11-01T23:47:56Z2020-11-01T23:47:56Z 让我们从API开始。这是最简单的选择:应用程序访问该应用程序外部代码的能力。这是一组功能,用于使程序外部的实体完成其工作。 现实生活中的一个例子:你的公寓里有一个管道,API 是管道工的电话号码,这个管道可以在必要时修理。 现在,库是一组随时可用的代码,它们在应用程序的上下文中运行,并以完全相同的方式完成其工作。也就是说,库在连接时成为应用程序的一部分。库和 API 之间的区别可能非常微妙:例如,WinAPI 提供有时也在进程中发生的功能。但是,这被认为是对应用程序外部平台的调用。 现实生活中的一个例子:您自己并没有组装壁橱,而是购买了现成的房屋,将其放在您的公寓中并使用它。壁橱是您的插件库。 好吧,框架- 它的功能与库不同,您不调用它,相反,您的代码是从它调用的。框架可以被认为是您自己添加必要功能的应用程序的半成品。 现实生活中的一个例子:你买了一套几乎完工的公寓,然后自己添加家具、墙纸和橱柜。公寓是你的框架,它快准备好了。你不能只是重做房间的数量或把它变成一艘船,而只是添加内部功能:镶木地板、浴室里的蓬松浴袍和一只猫。 Makarenko_I_V 2020-11-01T20:42:49Z2020-11-01T20:42:49Z 如果你使用每一个,你就会明白其中的区别。 应用程序接口: 大多数情况下,它意味着一个交互界面。用于处理独立服务。假设您想将视频上传到 YouTube,您将通过 API 使用它们的功能。 图书馆: 大多数情况下,一组现成的类、方法、典型问题的解决方案。为特定的东西量身定做。假设您想识别照片中的人脸(通过您自己,不使用第三方服务),然后安装某种 OpenCV 并使用它,以免重新发明轮子。 框架: 为了方便起见,通常包括库。他们为您提供现成的应用程序模板,实现设计模式(MVC、MVVC 或其他)。框架通常由彼此刚性连接(使用彼此的接口)的现成模块组成,在开发模块时,您需要实现接口以便于模块的集成。 Alex Krass 2020-11-01T21:44:32Z2020-11-01T21:44:32Z API是用于与外部程序交互的接口。你本身有某种成品,它似乎是一个黑盒子,你希望其他程序能够使用它。您定义与之交互的方法并描述它们,第三方程序使用它。这个概念本身非常广泛,更多时候它仍然用于与主应用程序之外的远程服务和请求相关的方面。粗略地说,API 是对与黑盒交互的描述,以便它为你做这个或那个动作。 库是各种函数和子程序的集合,可以在以后的各种应用程序中移植和使用。主要思想是它们可以在应用程序之间移植,并且可以在不修改的情况下重复使用。 框架是未来应用程序的框架,它包含所有基本的必要细节:库、结构、初始代码等。我们可以说这是最小的工件,您将在此基础上添加功能并进一步构建应用程序。您的应用程序将由于已经存在并为您精心准备的内容而工作。 Ольга 2020-11-01T21:52:14Z2020-11-01T21:52:14Z 图书馆通常很小,是为特定的东西而创建的,通常是一个目的。比如一个js日历库,一个winforms图表。 API 是系统的公开接口:其他人可以使用的方法、类等。 框架是一个涵盖任何主题的许多主题的大型系统。例如,.NET 框架。这是一堆满足各种需求的库。您既可以编写 Web 应用程序,也可以编写 winforms、wpf、wcf 等。 Xander 2020-12-21T20:10:31Z2020-12-21T20:10:31Z 如果在手指上,那么像这样: 库是某种外部逻辑,您的代码可以自由访问它以提取某些功能。 框架是某种现成的框架,您必须在其中安装您的代码。 API是一个系统暴露给外部的控制面板,以便其他系统可以访问它。 11111000000 2020-11-01T22:26:58Z2020-11-01T22:26:58Z API是一种模式。 库和框架提供 API。 API 可以构建在框架之上。 该框架由库组成或者是它们连接的模式。 该库可以由平台框架构建。 Alexander Pavlenko 2020-05-04T15:46:00Z2020-05-04T15:46:00Z Api(应用程序接口)——访问应用程序的功能。库(程序集)- 包含一组类或方法的单独模块。好吧,该框架不仅仅是一组功能,如 api、sdk 或库——它是一个成熟的开发环境,除了一组可在您的应用程序中使用的类和方法之外,该框架还为您提供必要的下划线、编译器、解释器、包管理器、反编译器等等。例如。Net、nodejs、java都是框架。 Aaron Peisakhovich 2020-08-03T23:11:11Z2020-08-03T23:11:11Z 如果我有任何错误,请纠正我。库 (*.dll) - 愚蠢的原始驱动程序。(驱动程序和程序之间的区别在于驱动程序代码中没有入口点(所谓的和心爱的函数“main(){}”...) .without psv main(){} 程序变成了一个库(一组类) 一个框架是一个SDK,它使用了一个API(它又使用了一个库/驱动程序的*.dll) 一个框架是一个SDK,它使用 API。
让我们从API开始。这是最简单的选择:应用程序访问该应用程序外部代码的能力。这是一组功能,用于使程序外部的实体完成其工作。
现实生活中的一个例子:你的公寓里有一个管道,API 是管道工的电话号码,这个管道可以在必要时修理。
现在,库是一组随时可用的代码,它们在应用程序的上下文中运行,并以完全相同的方式完成其工作。也就是说,库在连接时成为应用程序的一部分。库和 API 之间的区别可能非常微妙:例如,WinAPI 提供有时也在进程中发生的功能。但是,这被认为是对应用程序外部平台的调用。
现实生活中的一个例子:您自己并没有组装壁橱,而是购买了现成的房屋,将其放在您的公寓中并使用它。壁橱是您的插件库。
好吧,框架- 它的功能与库不同,您不调用它,相反,您的代码是从它调用的。框架可以被认为是您自己添加必要功能的应用程序的半成品。
现实生活中的一个例子:你买了一套几乎完工的公寓,然后自己添加家具、墙纸和橱柜。公寓是你的框架,它快准备好了。你不能只是重做房间的数量或把它变成一艘船,而只是添加内部功能:镶木地板、浴室里的蓬松浴袍和一只猫。
如果你使用每一个,你就会明白其中的区别。
应用程序接口:
大多数情况下,它意味着一个交互界面。用于处理独立服务。假设您想将视频上传到 YouTube,您将通过 API 使用它们的功能。
图书馆:
大多数情况下,一组现成的类、方法、典型问题的解决方案。为特定的东西量身定做。假设您想识别照片中的人脸(通过您自己,不使用第三方服务),然后安装某种 OpenCV 并使用它,以免重新发明轮子。
框架:
为了方便起见,通常包括库。他们为您提供现成的应用程序模板,实现设计模式(MVC、MVVC 或其他)。框架通常由彼此刚性连接(使用彼此的接口)的现成模块组成,在开发模块时,您需要实现接口以便于模块的集成。
API是用于与外部程序交互的接口。你本身有某种成品,它似乎是一个黑盒子,你希望其他程序能够使用它。您定义与之交互的方法并描述它们,第三方程序使用它。这个概念本身非常广泛,更多时候它仍然用于与主应用程序之外的远程服务和请求相关的方面。粗略地说,API 是对与黑盒交互的描述,以便它为你做这个或那个动作。
库是各种函数和子程序的集合,可以在以后的各种应用程序中移植和使用。主要思想是它们可以在应用程序之间移植,并且可以在不修改的情况下重复使用。
框架是未来应用程序的框架,它包含所有基本的必要细节:库、结构、初始代码等。我们可以说这是最小的工件,您将在此基础上添加功能并进一步构建应用程序。您的应用程序将由于已经存在并为您精心准备的内容而工作。
图书馆通常很小,是为特定的东西而创建的,通常是一个目的。比如一个js日历库,一个winforms图表。
API 是系统的公开接口:其他人可以使用的方法、类等。
框架是一个涵盖任何主题的许多主题的大型系统。例如,.NET 框架。这是一堆满足各种需求的库。您既可以编写 Web 应用程序,也可以编写 winforms、wpf、wcf 等。
如果在手指上,那么像这样:
库是某种外部逻辑,您的代码可以自由访问它以提取某些功能。
框架是某种现成的框架,您必须在其中安装您的代码。
API是一个系统暴露给外部的控制面板,以便其他系统可以访问它。
API是一种模式。
库和框架提供 API。
API 可以构建在框架之上。
该框架由库组成或者是它们连接的模式。
该库可以由平台框架构建。
Api(应用程序接口)——访问应用程序的功能。库(程序集)- 包含一组类或方法的单独模块。好吧,该框架不仅仅是一组功能,如 api、sdk 或库——它是一个成熟的开发环境,除了一组可在您的应用程序中使用的类和方法之外,该框架还为您提供必要的下划线、编译器、解释器、包管理器、反编译器等等。例如。Net、nodejs、java都是框架。
如果我有任何错误,请纠正我。库 (*.dll) - 愚蠢的原始驱动程序。(驱动程序和程序之间的区别在于驱动程序代码中没有入口点(所谓的和心爱的函数“main(){}”...) .without psv main(){} 程序变成了一个库(一组类) 一个框架是一个SDK,它使用了一个API(它又使用了一个库/驱动程序的*.dll) 一个框架是一个SDK,它使用 API。