Strangeioc框架信号机制的简单使用方法-新闻详情

Strangeioc框架信号机制的简单使用方法


发布时间:2017-08-23责任编辑:朱明 浏览:3085


Strange 是一个轻量的高扩展性的控制反转框架,专为C#和Unity而设计,它拥有如下特点,大部分特点是可选的:

  一个核心的绑定系统,可以支持各种绑定(bindone or more of anything to one or more of anything else.)

依赖注入

1、映射为单例,值或者工厂(每次需要时创建一个新的实例)

2、命名注入

3、 构造函数注入或者setter注入(可以理解为属性注入)

4、标记指定的构造函数

5、标记指定函数在构造函数之后触发

6、注入到Monobehiavours

7、多态绑定:可以绑定接口或者实体类

  两种风格的共享事件桥(Two styles of shared event bus)

1、都可以发送信号到程序的任何地方

2、都会为本地通信映射本地的事件桥

3、都会映射事件到相应的Command类来分离逻辑

4、使用新的信号实现增加了类型安全保证

  MonoBehaviour 中介

1、帮助分离view与逻辑

2、隔离unity特有的代码与其它逻辑代码

 可选的MVCS(Model/View/Controller/Service)结构

 多个Context

StrangeIoc是MVCS模式的开发。
      M层是数据和游戏状态保存(Model);
      V层是视图(View),用来显示界面相关的东西,包括界面逻辑(视图层不应该单单包含UI,还有一切可见的角色场景,操作),还有用户的输入输出操作(比如鼠标点击事件,相机图像识别,语音识别等);
       C层是后台逻辑层,比如加载数据,初始化模块,读取配置文件等等;
       S层是外部层,专门用来处理网络消息;
       Signal信号机事件派发模式,Signal是个十分牛逼的事件派发器,是IOC的模块和层级之间通讯机制。
 StrangeIoc 的核心在于减低模块和耦合性,增加各个模块的抵抗代码入侵能力。

下面我们通过一个的简单的HelloWorld来简单了解一下ioc框架:

1.png

2.png3.png4.png

5.png

6.png

7.png

8.png

9.png

如图所示:

    1. HelloWorldContextView继承ContextView,ContextView继承MonoBehaviour,是模块的总视图,是模块的启动口需要挂载在一个游戏物体上,作为启动入口。

     2. SignalContext继承MVCSContext,HelloWorldContext继承SignalContext(可以理解为模块层级的一个初始化中心),所有内部模块的关系都需要在这里进行绑定或者注入。

3. HelloWorldStartCommand初始化执行输出HelloWorld。

注:后面脚本是扩充,用来实现ioc框架信号传递的。

4.创建一个IHelloWorldDianJiServes的接口脚本

5. HelloWorldDianJiServes继承IHelloWorldDianJiServes接口脚本(接口方法卸载这里面)。

6。在建一个简单的交互场景 当一个按钮被点击  接口里面的方法执行,这里用框架的思想必须要有个对应的view层 vie层用来通知 “按钮被点击了”。

7.每个view层要创建一个对应的mediator。mediator是一个薄层,他的作用是让与之对应的View和整个程序进行交互。mediation binder的作用是把View映射到它对应的mediator上。所以接下来为View层创建对应的mediator- HelloWorldMediator.cs脚本.

8. 我们需要把待绑的类映射到Strange Context中。打开我们之前写的HelloWorldContext脚本,在mapBindings()方法中添加代码.

9. 在场景中,添加一个GameObject,添加 HelloWorldView 脚本,运行场景,你应该能看到当我们按下"Dj"按钮时,控制台输出"被点击了"。



春秋工作室   供稿