Frameworks 什么';“A”和“A”的区别是什么;引擎“;及;框架;?

Frameworks 什么';“A”和“A”的区别是什么;引擎“;及;框架;?,frameworks,programming-languages,Frameworks,Programming Languages,我听说这些术语似乎可以互换使用,所以我有点不清楚。请举出例子 框架主要是一组组件接口,但它并没有实现这些组件。该框架确实实现了一些粘合代码来帮助将框架连接在一起,并且它为您可能需要的东西提供了一些实用工具实现 游戏引擎实现框架中定义的所有组件……或者至少是游戏引擎开发人员认为实现其游戏引擎所需的所有组件。在某些情况下,引擎可能不需要物理或网络等,因此游戏引擎开发人员可以选择将这些组件排除在引擎之外 来源:。框架类似于一组库,旨在协同工作。这意味着您不需要到处实现通用算法和数据结构。您可以使用这些

我听说这些术语似乎可以互换使用,所以我有点不清楚。请举出例子

框架主要是一组组件接口,但它并没有实现这些组件。该框架确实实现了一些粘合代码来帮助将框架连接在一起,并且它为您可能需要的东西提供了一些实用工具实现

游戏引擎实现框架中定义的所有组件……或者至少是游戏引擎开发人员认为实现其游戏引擎所需的所有组件。在某些情况下,引擎可能不需要物理或网络等,因此游戏引擎开发人员可以选择将这些组件排除在引擎之外


来源:。

框架类似于一组库,旨在协同工作。这意味着您不需要到处实现通用算法和数据结构。您可以使用这些库(框架)来安排它们,使它们提供的功能能够帮助您解决问题

引擎是一个系统,你向它提供数据,它完成它的工作


值得注意的是,库可以有一个“引擎”,引擎可以使用框架构建。

这些术语和其他术语看起来非常相似。它们是从概念的角度命名的,因此可以定义如下:

  • “框架”是构建实际应用程序的“基础”或“支持结构”。.NETFramework不仅包括一个基础(CLR),还包括一系列提供标准化功能的库,否则您将不得不实现这些功能。其他框架或基础提供了更具体的支持领域,如UI、数据存储、客户机-服务器交互等。框架提供了一个相对静态的通用结构,您可以在其中构建特定和独特的内容
  • “引擎”是一段自包含但外部可控的代码,它封装了用于执行特定类型工作的强大逻辑。引擎的存在是为了完成“繁重的工作”,你可以指示它执行一些复杂、抽象的任务,它以一种相对有效的方式处理细节,而无需进一步的外部指导。SQL实现和其他执行搜索的服务通常称为“引擎”。还有物理引擎、图形引擎等,它们都有一个共同的想法,就是你告诉它以某种通用的方式“做这个”,它处理细节
框架示例:

发动机示例:

对每一种不同类型的病毒的调查都给出了一个线索

  • 搜索引擎,一种信息检索系统,设计用于在计算机系统上查找信息
  • 游戏引擎,计算机或视频游戏的核心软件组件
  • 布局引擎,一种格式化web内容以便在屏幕上显示的软件
  • 将图像规格转换为像素的渲染引擎、软件或硬件
  • 光线跟踪引擎,通过跟踪模拟光线渲染场景的软件
  • 多态引擎或变异引擎,早期的概念或机械计算设备
  • 差分引擎,一种设计用于将多项式函数制成表格的机械计算器
  • 分析引擎,计算机概念,由查尔斯·巴贝奇设计

  • 艺术绘画、音乐创作和机械CAD

  • 不同编程语言和目标机器的编译器
  • 财务建模应用
  • 地球系统建模应用
  • 决策支持系统
  • 媒体播放和创作
  • Web应用程序
  • 中间件

AFAIK框架是构建应用程序的结构。它与库的不同之处在于它具有控制反转(即,在库中,您从代码中调用一个子例程,因此您具有控制权;但在框架中,您将子例程绑定到框架,它在需要时调用您的子例程,因此控制权与框架在一起)

引擎是一个完全不同的概念——它是框架和库的混合体。与框架一样,它可以控制应用程序。但是,与框架不同的是,您没有将子例程绑定到引擎,而是使用其内置API来执行某些任务(类似于库)

总之,框架是应用程序的结构,您可以通过将子例程绑定到它来扩展和定制它。OTOH,引擎是主应用程序本身,您可以使用它的公共API简单地指示它做您希望它做的事情

因此,框架更加灵活。然而,引擎是一个可以工作的应用程序,因此它可以更快地完成工作,因为程序员不需要浪费时间重新发明轮子。他可以简单地指示发动机做什么,发动机将处理内部操作

An engine "does" the job for you.
一个简单的乘法程序

A framework "simplifies" the job for you.

您没有编写将字符串转换为int然后呈现给引擎的代码,而是有另一个代码为您转换它。此简化代码是一个框架。

有用的见解:引擎可以从框架中构建,也可以作为框架中的组件存在。框架=更抽象。Engine=specialized。我投票将这个问题作为离题题来结束,因为它要求的是单词的定义,而不是帮助中心定义的编程。indiegamesguild.com链接(上图)中的有用定义:“框架提供了抽象接口,定义了游戏引擎中使用的组件和许多“胶水”和实用程序实现,而游戏引擎提供了所有的实现