unity框架strangeioc研究分享

2015年03月22日 14:55 0 点赞 0 评论 更新于 2025-11-21 18:08

一、StrangeIOC涉及的设计模式

StrangeIOC涉及到的设计模式主要有中介者模式(Mediator)和数据绑定模式(Binding)。接下来,将为大家详细分享Unity框架StrangeIOC的相关内容。

二、基本概念

(一)依赖倒置原则(DIP)

依赖倒置原则(Dependency Inversion Principle,DIP)是一种软件架构设计的原则,它属于抽象概念。该原则强调高层模块不应该依赖低层模块,二者都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。

(二)控制反转(IoC)

控制反转(Inversion of Control,IoC)是一种反转流、依赖和接口的方式,它是依赖倒置原则的具体实现方式。在传统的程序设计中,对象的创建和依赖关系的管理通常由程序自身控制,而在IoC模式下,这些控制权被反转给了外部容器。

(三)依赖注入(DI)

依赖注入(Dependency Injection,DI)是控制反转的一种具体实现方式,其目的是反转依赖。通过依赖注入,对象在创建时会从外部获取其依赖的对象,而不是在内部自行创建,从而降低了对象之间的耦合度。

(四)IoC容器

IoC容器是依赖注入的框架,它的主要作用是映射依赖关系,管理对象的创建和生命周期,也被称为DI框架。在StrangeIOC中,控制反转(IoC)是整个框架的核心。

三、绑定——StrangeIOC框架的核心

(一)功能分类

绑定从功能上可以分为多种类型,例如:

  • 将接口绑定到实现该接口的类。
  • 将事件绑定到处理程序。
  • 绑定两个类,使得当一个类被创建时,另一个类会自动创建。

这些绑定操作的目的是为了更方便地隔离变化,提高代码的可维护性和可扩展性。

(二)层次分类

绑定从层次上分为三种:注入绑定(Injection Binding)、命令绑定(Command Binding)和中介绑定(Mediation Binding)。

1. 注入绑定(Injection Binding)

注入绑定主要用于将特定类型的对象绑定到上下文。通过这种绑定方式,程序的各个部分可以通过ContextView访问到该对象。这种绑定会创建对象,并将其注入到指定的对象中。

2. 命令绑定(Command Binding)

命令绑定的作用是将命令绑定到相应的方法。通过这种绑定,当特定的事件触发时,与之绑定的命令方法会被执行。

3. 中介绑定(Mediation Binding)

中介绑定用于拦截View消息。具体做法是将View注入到中介者(Mediator)中,然后在ViewAwake方法中创建Mediator对象。这样,Mediator就可以处理View发出的消息,实现View与其他部分的解耦。

四、实际项目中多个场景或者模块的处理

(一)事件消息穿透多个模块

在实际项目中,事件消息可以穿透多个模块。例如,使用crossContextBridge.Bind(MainEvent.GAME_COMPLETE),这样多个ContextView只要监听到这个消息就会被触发,类似于广播机制。

(二)Model跨模块传值

Model也可以跨多个上下文传值。通过injectionBinder.Bind<IScore>().To<ScoreModel>().ToSingleton().CrossContext(),可以将IScore接口绑定到ScoreModel类,并将其设置为单例,同时允许跨上下文访问。

(三)ContextView动态加载和卸载

ContextView可以动态卸载和加载,这使得在项目中可以根据需要灵活管理不同的上下文,提高资源的利用率。

作者信息

feifeila

feifeila

共发布了 3994 篇文章