2010-12-13 105 views
21

这两个术语之间有什么区别,先谢谢任何好的简化和好的例子。API和框架之间的区别

+1

我们不这样做,但为什么要问第一位呢? – 2010-12-13 15:20:55

+0

@SrinivasReddyThatiparthy,含义? – Pacerier 2014-08-27 03:59:51

回答

46

框架是一组类,接口和其它预编译代码在其或者通过使用哪些应用程序可以构建。

API是框架的公共面。一个设计良好的框架只暴露那些使用框架所需的类,接口等。支持框架操作但对框架用户来说不是必需的代码保留在框架的程序集/ DLL的内部。这使得框架的公众面貌变得更小,并鼓励“成功之坑”或框架的质量,这使得做正确的事情变得简单。

(我提供了一个来自.NET世界的例子) SqlConnection类用于连接到Sql Server实例。它的公共API是很简单:

using (SqlConnection connection = new SqlConnection(connectionString)) 
{ 
    connection.Open(); 
    // Do work here; connection closed on following line. 
} 

然而,这种类围绕System.Data框架200层内的方法(在这种情况下,组件),其3/4的是内部和取决于不是System.Data的公共API的一部分。由于框架的API保持简单,因此可以很容易地正确使用SqlConnection。如果用户被要求处理SqlConnectionFactorySqlDebugContextDbConnectionPoolGroup或任何由SqlConnection类所需的其他内部类的,它会变得成倍更加难以正常使用的SqlConnection。由于API仅公开一小部分框架,因此创建和使用连接更为容易。

+1

+1对于一个很好的解释! – 2010-12-24 12:54:42

+0

我有一个查询。在Java中,集合为什么被称为API和框架。有时它写成“集合API”,有时候写成“集合框架”。另外,请记住您的答案,Java的“反射API”又如何?它是Java的哪个框架的面? – shanti 2016-05-27 03:18:38

+0

我不知道。我也不知道。 – Will 2016-05-27 13:35:41

6

API是封装功能的(一组)组件的接口。例如,GoogleMaps API,DirectX或OpenGL API。

框架更多的是一套工具,组件旨在帮助开发人员在给定框架中开发他/她的项目。该框架通常设置一些编码标准,提供有用的组件,例如,Symfony/Cake是PHP Web应用程序框架。 JUnit是一个在Java中进行单元测试的框架,...

框架通常可以为一些API捆绑/提供一个统一的接口。

一些API可以使用框架内部构建。

0

API的SDK是预先内置的(或者您可以从中包含)。框架是可装载的捆,其中可以使用这种捆的暴露功能。您可以使用指向函数的指针来获取这些框架的公开函数。

实施例:

API:

-stringWithString: 

从框架功能:

-myExposedMethod: 
0

框架用于设计一个应用程序,即MVC,MEF。就像您建立的模型一样,几乎是您在应用程序中可能需要的某些功能集合的基础。

API是用于应用程序之间的交互,您的应用程序会使用Facebook API与Facebook进行交互。

希望这个更清楚一点。

1

API是代码有,不是它是。框架具有 API,但它本身不是API。

3
  1. API - 应用程序编程接口 - >您必须使用库的API
  2. 库时遵守合同 - 一组类/模块解决特定问题 - >有一个API
  3. 框架 - 一个“更大”的一套图书馆有一套关于如何使用它们的规则

由于每个图书馆都有一个API,所以没有必要给出例子。

时间流行的Java库是Joda time

流行的Java框架是Spring framework

你必须遵守很多规则才能很好地使用Spring。你不必遵守使用乔达时间的许多规则。

0
  1. 的Java API只是意味着...应用程序编程接口中,所有的功能描述产品或软件。

  2. Java Framework表示半完成的项目或代码。它提供了一个构建项目的体系结构。框架有自己的类和方法等。

+0

“集合框架”呢?为什么被称为那样? – shanti 2016-05-27 03:21:01

0

API是一个简单的用特定语言构建的库,开发人员可以使用它来构建应用程序。 框架是一组库,就像API一样,但是语法可能会影响原始语言。因此,例如在使用Symphony时,开发人员可能会编写不同的PHP语法。

0

框架和API的主要或核心区别在于框架允许开发人员通过生命周期回调方法机制挂钩到对象的生命周期,而API不这样做,API仅用于执行功能。

0

另一种方式来显现它是这样的:(!)(任何编程语言也是如此)

任何“即意在通过另一个软件使用一种软件”的定义必须有有一些“应用程序接口(API)”,它表示另一个软件预期(和允许)使用的“旋钮,开关和拨号盘”。所有内部实现细节都不可见,无法联系到。

“框架”是一些工具,旨在使人们更容易编写特定的常见类型的应用程序 - 例如网页。框架实现了“这种应用程序需要能够做的这个东西”,并以一种经过严格测试的方式做到这一点,“正是这样,你(应用程序作者)没有至。”与其重复撰写“同一件旧事,多一次,并且对是否做得正确而烦恼”,你只是利用框架已经为你做的事情。

毕竟...

Actum氖空地救援队:不这样做已经做了的事情。

相关问题