库,框架和API有什么区别?在我看来,它们都一样。我想听听人们对此的想法。
库,框架和API有什么区别?在我看来,它们都一样。我想听听人们对此的想法。
Answers:
库是用于特定目的的功能/对象的集合。您可以在各种项目中使用库。
框架是模式和库的集合,可帮助构建应用程序。
API是其他程序无需直接访问即可与您的程序进行交互的接口。
换句话说,将库视为应用程序的附件/片段,将框架视为应用程序的框架,将API视为该应用程序的外向部分。
到目前为止,很好的答案是,但是他们错过了一个关键点-框架使用IoC。您的代码被框架包围。它生活在里面。相反,您的代码仅使用库或API。它住在外面。IoC是不同的。
库是为执行常见任务而构建的代码的集合。库代码往往相对稳定且无错误。使用适当的库可以减少需要编写的代码量。它将倾向于减少应用程序的代码行数,从而提高功能交付的速度。在大多数情况下,使用库例程比编写自己的代码更好。
API(应用程序编程接口)是某些功能的接口,该功能允许应用程序访问可用功能。API可以被称为接口。API存在于许多级别,包括系统,库,框架,程序和应用程序。应该在实现实现API的代码之前定义API。
API应该稳定,尽管由于各种原因可以弃用部分API。API使用得越广泛,更改它就越困难。尽管不赞成使用许多方法,但大多数(如果不是全部)Java 1.0 API仍然可用。
框架是旨在简化应用程序构建的API的集合。框架提供了可重用组件的实现。好的框架往往专门用于它们的应用程序。
Java集合框架是各种类型的对象的API的集合,可用于处理集合。它为各种集合提供了API的层次结构。在Java Collections Framework中,SortedSet接口扩展了Set接口,而Set接口又扩展了Collection接口。这些API是抽象接口,实际的实现具有不同的名称。集合框架使实现集合变得简单,并简化了开发过程中不断变化的实现。
如针对J2EE开发的Java Spring框架所示,框架可以由较小的框架构建。Spring由十几个框架组成,其中许多框架可以单独使用或替换为其他框架。
使用适当的库,API和框架可以简化开发。这些组件负责处理常见问题,并允许开发团队专注于特定于应用程序的问题。
框架是从库升级的。如果您的工具箱是一个库,那么您的研讨会将是一个框架。
维基百科说
API是一种抽象,描述了与软件系统组件所使用的一组功能进行交互的接口
API和用户界面之间的重要区别在于,API使其他软件/服务可以通过编程方式与您的解决方案进行交互。
可以为应用程序(通过dll或插件)或网站和服务(通过REST和网络服务)构建API
API根据可以从源代码中使用哪些对象和方法来定义如何使用其他内容。例如,将Twitter或Facebook集成到站点中使用Twitter或Facebook中的API来确保更新正确的数据。
从某种意义上说,框架往往会比较庞大,因为有时它几乎可以形成自己的语言。jQuery是一个框架的示例,该框架具有自己的语法,并且在某种意义上具有进入我的代码的重要性。从某种意义上说,框架也可以是使其与API相似的平台,例如Win32API或.Net Framework每种都有许多用于构建应用程序的方法,因此可以有其中包含API的Framework和也被视为Framework的API。
库通常是实现API或框架的二进制文件,因此在某些情况下,它们是必须使用API或框架的位。至少这就是我如何看待这些术语以及它们之间的差异。
库是用于简化常见任务的代码集合-它可以是类,函数或特定于您的语言或平台的任何东西。一个很好的例子可能是一个字符串处理库,它为常见任务(构建,拆分,搜索或排序字符串等)提供帮助。
API(应用程序编程接口)是如何与其他应用程序,系统或技术一起使用的定义(“接口”)。它实质上定义了可用于与该其他系统进行交互的操作。API 可以是一个库(意味着该API被包装在一个库或一组类中),但是区别在于API始终引用外部系统-无论是数据库,Web服务,另一个应用程序还是操作系统本身。
框架是一个更大的概念-它通常包含许多库和API,以执行常见任务。它在更高的概念层次上存在-它不仅是工具的集合,而且是设计模式,最佳实践和方法的集合。软件框架是一个通用框架的扩展-其含义包括作为构建事物的基础,提供支持和结构以及为需求提供指导和定义。