2012-01-18 79 views
0

对于以下术语我有很多不同的定义,但我不清楚它们之间的区别。请有人澄清以下内容和每个项目之间的区别?清除Java中的API,库,框架和工具包之间的区别列表

  • API
  • 图书馆
  • 框架
  • 工具包

我没有看到什么使一个库或框架的工具包或从图书馆的框架不同的API 。

+1

已经涵盖在PSE:http://programmers.stackexchange.com/questions/54451/library-vs-framework-vs-api – Kev 2012-01-20 18:21:47

+0

感谢您的链接。 – 2012-01-20 19:32:24

回答

6

这些条款的使用有很大的不同,并有大量的重叠它们之间,但在这里就是我最常遇到的用途:

  • API是如何从一个一个的软件通信的规范程序。
  • 库是您可以在程序中导入和使用的类的集合。一个库带有一个API。
  • 框架就像一个库,但是内部翻转了:不是将它用作程序中的组件,而是编写程序以符合某个接口并将其插入到框架中。框架是您在中构建的,而库是您在上构建的
  • 一个工具箱一组关于程序的工作程序,如编译器,调试器,编辑器等(但一些图书馆也被称为工具包。)

当然,框架通常会附带一个常用操作库,或者构建为一组库,并可能包含工具。工具包是这些术语中最松散的定义,我认为。

+0

这是混淆的地方,与重叠。谢谢! – 2012-01-18 22:01:23

1

对于开发者来说,他们并不完全相同。 API或应用程序编程接口是开发人员感兴趣的内容,因为它是开发人员使用这些工具的方式。

当试图区分库,框架和工具包时,您实际上只是在谈论语义。

我想如果你进入它,一个库将成为一个框架的子集,因为一个框架可能包含一些库。

1

有一些区别,但它不是一个明确的(明确定义的)区别。在许多情况下,差异几乎没有。这就是说,这里有一个粗略的区别:

  • 库:一个可重复使用的软件单元(函数,类等)的集合。
  • API:程序中某些单元公开的协议。这个单位可以是任何大小(包括一个包含较小单位的复合单位)。特别是,它可以是一个图书馆。
  • 框架:一个对使用它的代码施加严格限制的库。通常情况下,它接管控制流并在/决定它时调用你的代码(通过一些回调机制)。从某种意义上说,并不是“你的代码使用框架”,而是“框架使用你的代码”。
  • 工具包:一个不是框架的库。