API、框架和中间件之间有什么区别?本质上,它们都为应用程序提供抽象的低级服务。在那种情况下,为什么 dot net 被称为框架而 windows API 被称为,嗯……一个 API?
5 回答
API 是应用程序程序员接口。它只是一个术语,指的是程序员用来与软件交互的方法。例如,DAO 可能有一个 save() 方法。Save 是 DAO API 的一部分。在较高级别上,您可能具有将用户添加到系统功能。那是系统 API 的一部分。
框架是一个工具或一组工具。例如,Spring 是一个框架,可以管理您的控制反转、依赖注入,并提供漂亮的模板以使您的生活更轻松。您通过其 API 使用 Spring。
中间件是允许一堆孤立的系统或功能进行交互的软件。所以如果你有一个网站和一个支付系统,你可以使用中间件来连接。
API是编程库(或库)的接口。它不会强加给你做任何事情的方式。例如,OpenGL 不限制你可以用它做什么。
框架为您提供部分完成的问题解决方案。你填空来做你想要的。这可能会加速你正在做的事情,但你也受到框架的限制,例如设计、性能、功能。-- 例如,MFC 提供了一种创建 UI 的方法。它很好地支持对话框,但不支持表单,并且诸如停靠之类的东西受到限制并且包含错误。Windows Forms 是一个功能更强大的框架(来自 Borland Delphi 的架构师!),它在各个方面都更好:设计、灵活性、工具等。框架很棒,直到它们不做你想让他们做的事情,然后你可能会浪费您试图解决它们的大部分时间。
中间件是一个垂直切片。如果您认为软件是分层的(例如操作系统、硬件抽象、实用程序库等),中间件会垂直整合许多这些层。它为您的应用程序中的某个区域提供了完整或部分的解决方案。例如,代理消息传递系统或渲染库/引擎。中间件不仅提供基本库,还提供相关工具,如日志记录、调试和性能测量。使用中间件时必须注意的一件事是DRY原则。因为中间件是垂直系统,它可能会竞争或复制应用程序的其他部分。
一个框架实现了一个 API。API 将框架客户端与底层框架的实现细节隔离开来。因此(广义而言)您可以使用 Mono 或 .Net Framework 来运行基于通用源代码的程序,因为这两个框架的 API 是相同的。
中间件通常是专门用于进程间通信的框架。
API 是系统的编程接口。您可以使用它与系统交互,但不会强制程序中的任何结构(理想情况下)。
一个框架,规定了您编写某些类型的应用程序的方式,以减少所需的样板数量。它解决了它类型的应用程序的一些常见问题。
中间件主要是市场营销。有很多定义,但通常涉及一个大框架,并围绕它构建一些工具。一些商业游戏引擎可以被认为是中间件,SOA 平台也被称为中间件等。
主要区别在于功能的目的。
API 旨在解决特定领域中的某些特定问题。它包含必要的数据结构、类、方法、接口等。例如 ADO.net API 提供了连接 Microsoft SQL Server 的功能。
一个旨在帮助开发人员开发可重用、可扩展的软件应用程序的框架。一个框架没有像 API 那样的特定功能,但它的各种功能由 API 公开。例如,ADO.net 是 .net 框架的一个 API,用于访问数据服务。一个框架有编译器、程序、类库、运行时。它可以添加插件。