先说Binder,这个框架出现最多的就是Binder,也是很多人刚接触的时候不能理解的地方,中文意思就是粘合剂。有几个主要的Binder,他们都是继承至Binder的,Binder其实就是一个高级表。里面存放的是以typeof(T)为key的对象。同key下以name(通常用枚举)来区分。,value存在binding中。
1、CrossContextInjectionBinder(跨上下文注入)
核心含义就注入()
表示已经在injectionBinder中绑定以typeof(IInstanceProvider)和typeof(IInectionBinder)为key的value是injectionBinder.
这种Binder<>().To<>()的形势就表明后面的inectionBinder.GetInstance<>()。GetInstance的对象就是injectionBinder。
怎么实现?
2、SignalCommandBinder(信号命令)
理解了Binder,再看SignalCommandBinder就简单多了。主要通过不同来发现他的功能。
commander.Binder<信号>().To<命令>();
信号.Dispatcher()就是command.Execute();
3、MediationBinder(中介)
所有mediator的起点
就是给所有的view加一个mediator。
mediataionBinder.Bind<view>()To<mediator>().
表示view.gameObject.AddComponent<mediator>().
4、ReflectionBinder(反射)
主要是为injectionBinder中的injector的Inject()方法服务的。Get(type),就是找到所有的[Inject],[PostConstruct],和ctor.
还有一个ImplicitBinder不懂有什么实际意义