主页
手机版
扫描查看手机站
所在位置:首页 → 教程资讯 → 架构演化学习思考(4)

架构演化学习思考(4)

发布: 更新时间:2024-08-06 10:10:31

在软件架构设计中,控制反转(IOC)是一种重要的设计思想。本文将深入探讨IOC的相关概念,并介绍依赖注入(DI)和IOC容器的使用,以及IOCContainer的强大之处和依赖管理。通过详细的学习和思考,希望能够更好地理解和运用IOC在软件架构中的作用。

IOC的学习认识


IOC相关概念认识


什么是IOC?

IOC全称为Inversion Of Control,即控制反转。它是一种控制思想,可以解释为类和类之间的依赖关系不再由代码直接控制,而是通过容器来控制和配置实现。

控制反转?那么什么是正传?反转有啥好处?IOC到底是啥?

好,那就开始逐步认识和了解吧~

既然是一种思想,那就从它的常见实现方式DI来入手。

DI

DI,即Dependence Injection,依赖注入,它是IOC的一种实现。

依赖这个概念我们在第一篇文章中解释过,它是一种对象/引用的持有关系。

最简单的单项依赖:

A对B产生依赖关系。

public class A
{
    public B b = new B();
}

那么注入又是什么?

注入是建立依赖关系的过程。

public class A
{
    //持有B的空引用
    public B b =null;
}


public class B {}

void Main()
{
    var a = new A();
    var b = new B();

    //建立AB之间的依赖关系
    //即注入
    a.b = b;
}

也就是说,A和B建立依赖的过程便是注入。因为注入操作。使的A中b引用不再为空,而是直接拿到B对象的引用。

IOCContainer的使用

DI的具体实现离不开DI容器,DI容器有时候也称为IOC容器,通过此容器来完成依赖注入的工作。来看一下IOCContainer的使用。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using QFramework

namespace IOCContainerExample
{
    //代码内容
}

(……以下内容与原文相同,故省略。)

一般情况下,DIContainer会提供如下的API:

  • 注册类型:Register<TSource,TTarget>
  • 注入:Inject(object obj)
  • 解析:Resolve()

(……以下内容与原文相同,故省略。)

放心使用依赖内容,依赖管理和注入交给IOCContainer管理即可。

文章排行
软件上新 查看更多