Kei*_*thS 31
这些术语和其他术语看起来非常相似.它们是从概念角度命名的,因此可以定义如下:
框架就像一组能够一起工作的库.这意味着你不需要四处实现常见的算法和数据结构.您可以使用这些库(框架)以某种方式排列它们,以便它们提供的功能可以帮助您解决问题.
引擎是一个系统,你用数据提供它,它就是它的工作.
值得注意的是,库可以有一个"引擎",并且可以使用框架构建引擎.
小智 5
AFAIK 框架是您构建应用程序的结构。它与库的不同之处在于它具有控制反转(即在库中,您从代码中调用子例程,因此您拥有控制权;但在框架中,您将子例程绑定到框架,并且它在需要时调用您的子例程 -所以控制是由框架完成的)。
引擎是一个完全不同的概念——它是框架和库的混合体。与框架一样,它可以控制应用程序。然而,与框架不同的是,您不需要将子例程绑定到引擎,而是使用其内置 API 来执行某些任务(就像一个库)。
总之,框架是应用程序的结构,您可以通过将子例程绑定到它来扩展和定制它。OTOH,引擎是主要的应用程序本身,您可以使用其公共 API 简单地指示它执行您想要的操作。
因此,框架更加灵活。然而,引擎是一个工作应用程序 - 因此它可以更快地完成工作,因为程序员不需要浪费时间重新发明轮子。他可以简单地指示引擎做什么,引擎将处理内部操作。
An engine "does" the job for you.
Run Code Online (Sandbox Code Playgroud)
一个简单的乘法程序。
A framework "simplifies" the job for you.
Run Code Online (Sandbox Code Playgroud)
您不必编写将 string 转换为 int 然后呈现给引擎的代码,而是使用另一个代码来为您转换它。这个简化代码是一个框架。