我是靠谱客的博主 含糊皮带,最近开发中收集的这篇文章主要介绍什么是引擎什么是引擎,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是引擎

前言

引擎这个词在编程中出现越来越多,比如游戏引擎,爬虫引擎,规则引擎。引擎这个最初在汽车里面代表发动机的词,到底是指什么意思,而引擎在不同编程的语境中具体又代表了什么,本文就是为了解释这些疑问而写的。

从词源说起

引擎,中文百度百科说的是汽车动力的来源。换句话说,就是驱动汽车发动、前进、加速的一种组件。当引擎用在游戏中时,游戏引擎指的是控制所有游戏功能的主程序。

游戏与状态

在游戏中,引擎被抽象为控制所有游戏功能的主程序。那么,游戏引擎如何控制游戏功能呢?想象我们再玩一个网络游戏,首先有一个游戏图,然后我们输入一些操作,控制人物的行为,人物在游戏中与游戏中的对象进行交互,从而产生一种新的状态。
如果把游戏中所有的对象看作状态机,游戏引擎就是改变状态的规则,它定义了对象(状态机)在什么情况下应该转变为另一种状态并且完成这个状态的转换。

汽车的状态

汽车,开始是静止状态。引擎,定义了当打火的时候汽车发动,当踩油门的时候,引擎会让汽车进行加速。引擎是改变状态的动力,它定义了状态如何改变并且将这种改变实现。在物理世界中,引擎通过复杂的物理过程实现状态的改变;在代码世界中,引擎通过代码的执行和调用实现程序状态的改变。

调度与规则

而引擎在调用的时候,如果资源很少直接进行调用,不会出什么问题(甚至不需要所谓引擎的概念,直接运行一个所有代码的在main函数里面的程序即可)。当需要调用的资源/函数很多的时候,引擎还承担起调度的功能,资源之间相互具有依赖性,先执行什么,再执行什么,这个由引擎来决定。拿汽车举例,发动汽车气缸内的物理过程顺序不能错,否则就会出现不同的结果。物理过程,可以理解为使引擎内部的自然规则,在实际代码中,我们可以自定义自己的规则。

代码库与接口

还有一种理解是,引擎就是为了实现某个功能已经封装好的库。有人也许会问,这和API有什么区别?API是提供调用封装好的库的接口,一个引擎为了完成某个功能,必然会调用已经实现的函数代码的接口,并且这种调用是基于引擎功能而制定的调用组合。引擎这个概念,其实也就是抽象,在更高一个层面看代码,将森林简化成一棵树。

总结

从状态的角度讲,引擎是为了实现状态的转换。而状态的转换,需要定义规则。即在什么情况下作出什么反应。
从功能的角度讲,引擎是封装了代码/函数库,通过调用代码/函数库的接口来实现特定的功能。
从抽象的角度讲,引擎简化了我们看问题的视角。使得我们通过引擎就可以对程序的功能状态进行改变,从而实现丰富的内容和功能。

最后

以上就是含糊皮带为你收集整理的什么是引擎什么是引擎的全部内容,希望文章能够帮你解决什么是引擎什么是引擎所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部