我听说这些术语似乎可以互换使用,所以我有点不清楚。请举例说明。
答案 0 :(得分:29)
这些术语和其他术语看起来非常相似。它们是从概念的角度命名的,因此可以定义如下:
答案 1 :(得分:5)
框架就像是一组能够协同工作的库。这意味着你不需要四处实现常见的算法和数据结构。您可以使用这些库(框架)以某种方式排列它们,以便它们提供的功能可以帮助您解决问题。
引擎是一个系统,你用数据提供它,它就是它的工作。
值得注意的是,库可以有一个“引擎”,并且可以使用框架构建引擎。
答案 2 :(得分:4)
http://indiegamesguild.com/sgtflame/2010/02/23/frameworks-vs-engines/
框架主要是一堆组件接口,但它没有实现这些组件。该框架确实实现了一些粘合代码以帮助将框架绑定在一起,并且它为您可能需要的东西提供了一些实用程序实现。
游戏引擎实现框架中定义的所有组件......或者至少游戏引擎开发者认为需要的所有组件才能实现他的游戏引擎。在某些情况下,引擎可能不需要物理或网络等,因此游戏引擎开发人员可能会选择将这些组件从引擎中移除。
这回答了吗?
答案 3 :(得分:4)
AFAIK框架是构建应用程序的结构。它与库的不同之处在于它具有控制反转(即在库中,您从代码中调用子例程,因此您可以控制;但在框架中,您将子例程绑定到框架,并在需要时调用您的子例程 - 所以控制权与框架一起。)
引擎是一个完全不同的概念 - 它是框架和库之间的混合体。像框架一样,它可以控制应用程序。但是,与框架不同,您不会将子例程绑定到引擎,而是使用其内置API来执行某些任务(类似于库)。
总之,框架是应用程序的结构,您可以通过将子例程绑定到它来扩展和定制。 OTOH,一个引擎是主要的应用程序本身,您可以使用其公共API简单地指示您执行您想要的操作。
因此,框架更灵活。然而,引擎是一个工作应用程序 - 因此它可以更快地完成工作,因为程序员不需要浪费时间重新发明轮子。他可以简单地指示发动机做什么,发动机将处理内部操作。
答案 4 :(得分:1)
框架示例:
引擎示例:
对每种类型的调查给出了一个线索......
分析引擎,一种计算机概念,由Charles Babbage设计
艺术绘画,音乐创作和机械CAD
答案 5 :(得分:1)
An engine "does" the job for you.
一个简单的乘法程序。
A framework "simplifies" the job for you.
不是编写用于将字符串转换为int然后呈现给引擎的代码,而是使用另一个代码将其转换为您。这个简化代码是一个框架。