StrangeIoC框架是一个超轻量级和高度可扩展反转(IOC)框架,专门为c#和Unity编写,它是基于MVC框架扩展的。即MVCS框架。M(models),V(view),C(controller),S(services)。详细的信息可以查看其官方文档。
作为一款依赖注入/控制反转(IOC)的MVC框架,StrangeIoC除了使我们的程序结构更加解耦合理外,还为我们提供了大量方便的功能(这里主要是和PureMVC进行对比)。
该框架的应用是以extension的扩展为基础的,主要的扩展如下:
Injection的扩展可以说是松耦合绑定的基础,使逻辑和显示分离得以实现,正如官方文档所言,很多人将StrangeIoc这套框架成为Dependency Injection框架, 这个其实是由Injection扩展来是实现的,具体的类图如下:
在我们使用Injection的时候,需要注意下列事项
Event Dispatcher 和Singal都可以看作是Dispatcher的扩展,其实就是一种Observer设计模式的松耦合实现。基本的类关系图如下:
本质上都是Observer的实现方式,下面的Command extension 和Mediator extension都会用Dispatch将MVC设计模式中的M,V,C联系到一起。
Dispatch是将Event绑定在方法上,而Command extension是将Event绑定到具体的Command上,Command的使用应该是MVCS设计模式中的Controller(C),基本类之间的关系如下:
CommandBinder可以将具体的Event或者Signal来绑定到具体的Command上,其负责利用Event或者Signal来找到,或者创建一个Command。
Mediation 扩展是整个StrangeIoc框架中唯一依赖Unity3D的API的扩展,这是因为mediation是用于处理显示(Views,GameObject)和除显示外的应用程序逻辑的。在这个框架中,其把显示部分分成了View和Mediator,具体的类层次关系如下:
Context extension 是整个strangeIoc 的MVCS框架应用的基础,其组合了前面所有的extension,具体的关系如下图 :
关于StrangeIOC框架的具体用法,在下一节我们会具体介绍。
参考文章链接:https://blog.csdn.net/leoleocs/article/details/48023823