现在,这可能是一个愚蠢的问题,但有时术语框架和API可以互换使用。在我看来,框架是一个更大、更通用的东西,包含许多API,可用于各种编程任务(例如,.NET框架)。API更小、更专业(例如,Facebook API)。有人想分享他们对这件事的见解吗?
举个例子,微软称.NET为框架,而Sun称其为平台……那么,如何调用“图书馆的集合”也会是一个商业/营销决策吗?
发布于 2009-04-07 07:13:02
Design Patterns提供以下定义:
这里的关键是,虽然工具包(API)在许多领域都很有用,但框架是为了解决特定类别的问题而设计的,可以“通过创建框架抽象类的特定于应用程序的子类”来定制这些问题。
此外,也许更重要的是,“框架决定了应用程序的体系结构”:控制反转是框架的特征之一(参见Martin Fowler on this);不是让应用程序调用特定的API来实现特定的行为,而是由框架调用您的代码。
发布于 2009-04-07 06:45:50
我一直认为框架就是整个东西,内部代码,API等等。
而API只是你想要使用框架时使用的一小部分。
换句话说,.NET框架由.NET库、所有语言等组成。API就是您调用函数的方式。
发布于 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平台有两个组件:

https://stackoverflow.com/questions/724380
复制相似问题