我正在尝试统一使用 Zenject。
就我而言,我想让接下来的工作:
LevelInitializer
通过TView
通过正常的Zenject注入从放置的游戏对象中获取所有Enumarable<TView>
。从这一步开始,我们有一个类引用场景中的所有TView
组件。TView
实例创建一些模型类,我们将其命名为TModel
。我也希望其他一些类可以动态地注入这个TModel
.据我所知,DI 应该在开始时安装所有绑定,重新绑定/重新注入东西被认为是不好的做法。 我认为最合适的解决方案是:拥有我上面描述的所有内容。然后对于每个这样的动态生成多个实例,我可以有
TCollector
它只存储引用。每个想要获得 TModel
实例的类中的每一个都可以使用方法 IInitializeReceiver<T>
实现 Receive(IEnumerable<T> values)
并将其绑定到自身,因此 LevelInitializer
可以将创建的 TModel
发送给所有接收者,无论他们想要什么做它。
所描述的解决方案是一个好方法吗?或者,也许你可以就我的问题给出一些建议,比如 Zenject 的明显最佳实践?