1.什么是Zenject
Zenject是为Unity构建的轻量级高性能依赖注入框架,它可以将应用程序转变为高度分工且松散耦合的集合。Zenject的GitHub页面
2.快速开始
首先前往Unity Asset Store搜索Extenject(改名了)找到如下图所示的插件,添加到资源库后在项目中导入即可。
导入成功后会在工程的资源目录中添加Zenject
在场景中创建一个Scene Context
在资源目录中创建一个Mono Installer
创建一个游戏物体并将Installer脚本挂载在物体上
将创建的游戏物体添加到SceneContext的MonoInstallers中
在刚刚创建的Installer中绑定一个服务类,并设置为单例模式
创建另一个脚本并引入依赖,直接在Start中调用服务类对象的方法。将脚本挂载在游戏物体上并运行游戏。
可以看到控制台成功输出语句
3.总结
通过上面的快速入门案例,我们可以总结出使用Zenject的三个步骤:
(1)Mono Installer设计(声明依赖关系)
(2)Scene Context准备
(3)在脚本中进行依赖注入
4.什么是DI&IOC
IOC叫做控制反转,DI叫做依赖注入,DI不能单独存在,它需要在IOC的基础上才能完成操作。
控制反转是一种思想,即把对象的控制权从程序本身交给外部容器。说人话就是把new的过程交给容器去做。
依赖注入是指在程序运行过程中,如果需要调用另外一个对象,则无需再代码中创建这个对象,而是由外部容器创建后传递给程序。