API vs Toolkit vs Framework vs Library

时间:2011-03-27 22:48:21

标签: api frameworks terminology toolkit

我的问题非常简单,我想用一个简单的例子给出一个明确的答案。

API,工具包,框架和库之间的主要区别是什么?

3 个答案:

答案 0 :(得分:6)

这一直是我的理解,你无疑会看到关于这个主题的不同意见:

API(应用程序编程接口) - 允许您在独立的功能中使用已经运行的应用程序中的代码。

Framework - 为特定任务/应用程序类型提供基类和接口的代码,通常采用设计模式的形式。 (虽然不总是)

库 - 可以随意交换的相关代码,用于完成类级别的任务

工具包 - 可用于在组件级别完成任务的相关代码。

答案 1 :(得分:6)

我更喜欢以下内容:

  1. API是如何使用应用程序的抽象描述。例如,API可以描述聊天服务器的功能语法(声明)。即login,publish_message,subscribe_messages。并且,它描述了使用该应用程序的任何协议。即必须在发送或接收消息之前登录,否则如果不发送或接收消息,客户端将在2分钟后被丢弃。
  2. 库是API的一个实现,它包含实现函数和协议的编译代码(维护使用状态)。
  3. 工具包是一组库(API)和服务组合在一起,为开发人员提供了更广泛的可能解决方案。例如,Globus Toolkit提供devleoper可以在其服务器上安装和启动的服务(例如文件传输,作业调度和调度)。它们还提供API来构建可以使用以集成方式部署的服务的应用程序。例如,开发人员可以构建一个程序,该程序使用作业提交API与作业提交服务进行通信。
  4. 框架是一套防止不当使用或开发的指南。开发人员必须在框架的规则和边界内构建其应用程序。这是通过强制开发人员扩展当前框架以开发新软件来完成的。通过扩展框架,您可以强制遵循框架。
  5. 我不是说这些都是完全正确的,但到目前为止它对我有用了!

答案 2 :(得分:0)

这些术语有时会被误解。

类似的帖子,请阅读:

What is the major difference between a framework and a toolkit?

Framework vs. Toolkit vs. Library

我更喜欢将库称为模块或命名空间的别名。工具包和A.P.I.通常是一组用于常见任务的库。 Altought,A.P.I。程序编程比面向对象编程更常用。