IOC分类

IOC的类型

  1. 构造函数注入
  2. 属性注入
  3. 接口注入

构造函数注入

在构造函数注入中,通过调用类的构造函数,将接口实现类通过构造函数变量传入:

public class MoAttack{
    private GeLi geli;
    //1、注入隔离的具体饰演者
    public MoAttack(GeLi geli){
        this.geli=geli;
    }
    
    public void cityGateAsk(){
        geli.responseAsk("墨者革离");
    }
}

MoAttack的构造函数不关心具体由谁来饰演革离这个角色,只要在1处传入的饰演者按剧本的要求完成相应的表演即可,角色的具体饰演者由导演来安排:

public class Director{
    public void direct(){
        //1、指定角色的饰演者
        GeLi geli = new LiuDeHua();
        //2、注入具体饰演者到剧本中
        MoAttack moAttack = new MoAttack(geli);
        moAttack.cityGateAsk();
    }
}

在1处导演安排刘德华饰演革离,并在2处将刘德华注入到墨攻剧本中,然后开始城门叩问的剧情。

属性注入

虽然革离是影片《墨攻》的第一主角,但并非每个场景都需要革离的出现,在这种情况下通过构造函数注入并不妥当,这时可以考虑属性注入。

public class MoAttack{
    private GeLi geli;
    //1、属性注入方法
    public void setGeli(GeLi geli){
        this.geli=geli;
    }
    public void cityGateAsk(){
        geli.responseAsk("墨者革离");
    }
}

导演通过Setter方法注入革离角色:

public class Director{
    public void direct(){
        MoAttack moAttack = new MoAttack();
        //1、调用属性Setter方法注入
        GeLi geli = new LiuDeHua();
        moAttack.setGeli(geli);
        moAttack.cityGateWayAsk();
    }
}

通过构造函数注入革离饰演者不同,在实例化MoAttack剧本时,并未指定任何饰演者,而是在实例化MoAttack后,需要革离出场时,才调用其setGeli方法注入饰演者。这样导演可以根据所拍摄剧段的不同,按需注入相应的角色。

接口注入

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值