首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >框架Vs.API接口

框架Vs.API接口
EN

Stack Overflow用户
提问于 2009-04-07 06:44:20
回答 12查看 44.9K关注 0票数 46

现在,这可能是一个愚蠢的问题,但有时术语框架和API可以互换使用。在我看来,框架是一个更大、更通用的东西,包含许多API,可用于各种编程任务(例如,.NET框架)。API更小、更专业(例如,Facebook API)。有人想分享他们对这件事的见解吗?

举个例子,微软称.NET为框架,而Sun称其为平台……那么,如何调用“图书馆的集合”也会是一个商业/营销决策吗?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2009-04-07 07:13:02

Design Patterns提供以下定义:

  • 工具包:“通常,应用程序将合并来自一个或多个预定义类库的类,称为工具包。工具包是一组相关且可重用的类,旨在提供有用的、通用的functionality".
  • frameworks:。框架是一组协作类,它们构成特定软件类的可重用设计”。

这里的关键是,虽然工具包(API)在许多领域都很有用,但框架是为了解决特定类别的问题而设计的,可以“通过创建框架抽象类的特定于应用程序的子类”来定制这些问题。

此外,也许更重要的是,“框架决定了应用程序的体系结构”:控制反转是框架的特征之一(参见Martin Fowler on this);不是让应用程序调用特定的API来实现特定的行为,而是由框架调用您的代码。

票数 37
EN

Stack Overflow用户

发布于 2009-04-07 06:45:50

我一直认为框架就是整个东西,内部代码,API等等。

而API只是你想要使用框架时使用的一小部分。

换句话说,.NET框架由.NET库、所有语言等组成。API就是您调用函数的方式。

票数 21
EN

Stack Overflow用户

发布于 2009-04-07 07:15:30

框架确实引入了的概念

(即整个程序的控制流程不是由调用者决定的,而是由框架决定的)

当您提到语言框架(如Java Framework或.Net Framework)时,实际上包含的不仅仅是库和它们的API(如果这些库提供控制反转,则Software Framework将受到更多限制)。

语言框架包括开发和执行环境,它们将调用您的代码(编译或执行代码)。

这就是为什么.Net框架是一个“框架”。

Java可能将其框架(JDK、JRE)称为"“,以强调其”独立于平台“的编程语言特性。

来自About the Java Technology

平台是运行程序的硬件或软件环境。(包括Microsoft Windows、Linux、Solaris OS和Mac OS)。

大多数平台可以描述为操作系统和底层硬件的组合。

平台与大多数其他平台的不同之处在于,它是一个运行在其他基于硬件的平台之上的纯软件平台。

Java平台有两个组件:

  • Java Virtual Machine
  • Java应用程序编程接口

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/724380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档