接入StrangeIoC

目前工程项目分为多个Scene

  • main 作为入口场景用于加载其他的场景信息
  • service 用于启动服务器等server信息
  • login 用于登录界面和进入房间选项
  • room 用于主场景界面

关于StrangeIOC

接入StrangeIoC_第1张图片
  • 关于StrangeIOC框架 刚看过一遍
  • 框架学习笔记:Unity3D的MVC框架——StrangeIoC
  • Unity StrangeIoc框架
  • StrangeIOC MVCS框架介绍及进阶 值得阅读,刚看了开头
  • Unity StrangeIoc 框架介绍 译文
  • 相关译文
  • 进阶方面

Strange: the IoC framework for Unity 读书笔记

原文

  • Strange: the IoC framework for Unity

译文

  • Unity StrangeIoc 框架介绍
  • 快速入门 | Unity StrangeIoc 框架介绍(上)
  • 快速入门 | Unity StrangeIoc 框架介绍(下)

重新排版和翻译了译文的部分内容

介绍

StrangeIoC是一个轻量高扩展性的控制反转框架,为C#和Unity设计

  • 一个支持各种绑定的核心的绑定框架
  • 依赖注入
    • 映射为单例、值或工厂(每次需要时创建一个新的实例)
    • 命名注入
    • 构造函数注入或者setter注入(可以理解为属性注入)
    • 标记指定的构造函数
    • 注入到MonoBehaviours
    • 多态绑定 : 可以绑定接口或者实体类
    • 反射绑定,显著减少采用反射的开销
  • 两种风格的共享事件机制
    • 可以发送消息(event or signal)到程序的任意位置
    • 为本地通信映射本地的事件桥
    • 都会映射事件到相应的命令类来分离逻辑
    • 使用新的 signal 实现来增加类型安全保证,并且减小了类型强制转换的开销
  • MonoBehaviour中介
    • 帮助分离view和逻辑
    • 隔离unity特有的代码与其他逻辑代码
  • 可选的MVCS结构
  • 多个context
    • 多个子控件(子场景)单独运行,或者运行在主APP中
    • 允许context之剑通信
  • 扩展简单,可以自建新的绑定器

目录介绍

  • Framework 包含构成Strange的主要类
  • Extensions 库函数
  • tests 单元测试

1.绑定

关于Signal的使用

signal 不一定需要和command绑定,只需要自行绑定单例就可以了

//CrossContext 是用于跨模板和跨场景用的
injectionBinder.Bind().ToSingleton().CrossContext();

关于多个Context的处理

unity框架strangeioc研究分享
Crossing Contexts with StrangeIoC

关于绑定MonoBehaviour的管理类

将会出现无法注入[Inject]参数的情况

注入 原理相关

框架学习笔记:深度解析StrangeIoC内部运行机制

injectionBinder.Bind (viewType).ToValue (view).ToInject(false);
injectionBinder.injector.Inject (mediator);
injectionBinder.Unbind(viewType);

你可能感兴趣的:(接入StrangeIoC)