控制反转(IOC)的代码理解

https://blog.csdn.net/sinat_21843047/article/details/80297951
在这里插入图片描述
首先在控制反转的思想里面,有个东西叫IOC容器,所有的类都会放到里面;

现在有两个类:用户类和用户信息类;

用户类是个实体,用户信息类是另外一个实体;


传统的方式使用依赖对象(正转):

public class User {

    private String address;

    private String phone;

    public class UserInfo {
        private String userId;
        private String userName;
        private String age;
    }

}

用户信息类是一级类(就是最基础的那些数据),用户类是二级类(用了一级类的信息);

然后用户类就依赖于用户信息类,用户信息类就称为用户类的依赖对象

A依赖于B(A里面使用了B),则B叫做A的依赖对象;

用户类依赖于用户信息类;

所谓正转就是,在用户类里面完整地把用户信息类给写出来,然后接下来才能使用用户信息类来创建用户信息类实例;


控制反转的方式使用依赖对象(反转):

public class User {

    private String address;

    private String phone;
    
    UserInfo userInfo = new UserInfo();

}

public class UserInfo {

    private String userId;
    
    private String userName;
    
    private String age;
}
public class User {

    private String address;

    private String phone;

    @Autowired
    private UserInfo userInfo;
    
}
public class UserInfo {
    
    private String userId;
    
    private String userName;
    
    private String age;
}

首先,所谓的依赖注入,注入依赖对象,注入,这几个词的意思,就是在控制反转的思想下使用依赖对象而已;就是反转的时候使用依赖的时候叫注入,正转的时候使用依赖对象叫使用。。。

上面两段代码都是控制反转时注入依赖对象(也就是把各个类放到IOC容器里面,要用的时候直接new一个,或者使用注解声明一个,应该也可以使用构造器创建一个),两个类没有包含关系,就只是在用户类里面用到用户信息类的时候注入了它,这个注入就是由容器找到并放入到用户类里面的,用户类什么都没干,但是在传统的方式里面,用户类就得创建用户信息类。


这张图的意思:

IOC容器里面放入了用户类,用户信息类,客户端类;

客户端类用了用户类,那么容器就在里面找用户类,找到了就创建一个用户类对象,然后注入到客户端类中,但是在创建用户类对象的时候,发现用户类里面还用到了用户信息类,那么容器又去找这个用户信息类,找到了就创建一个用户信息类对象然后注入到用户类对象中;按流程来,应该是先注入用户信息类到用户类中,然后再把用户类注入到客户端类中。

IOC容器将依赖对象注入到对象里面;(注入这个动作是容器做的,不是对象做的,如果是对象做的那就是正转了;依赖对象是基础的信息一级类,对象是用了基础信息的二级类)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值