IOC控制反转(依赖注入)
来源:互联网 发布:云同步盘 linux 编辑:程序博客网 时间:2024/05/29 06:44
一。什么叫控制反转
MoAttack 墨攻剧本需要一个英雄,去喊话,“墨者革离”。这时候剧本就控制LiuDeHua(刘德华)去喊话。
这个演员不一定确定是刘德华,我们可能找其他人来喊话,但是这个人必须有一个功能喊话。所以我们定义了一个角色接口(GeLi)演员实现这个接口。
我们需要实现剧本只是依赖角色。而不依赖演员。这个时候我们引入一个新的对象。导演
public MoAttack{ private Geli geli; public void setGeli(Geli geli){ this.geli = geli; } public void cityGateAsk(){ geli.responseAsk("墨者革离"); }}----------public interface GeLi{ void responseAsk();}public Class LiuDeHua{ public void responseAsk(){ system.out.println("墨者革离"); }}public Class Director{ public static void main(string[] args){ GeLi geli= new LiuDeHua(); Moattack moattack = new Moattack(); Moattack.setGeLi(geli); Moattack.cityGateAsk(); }}
这样就讲剧本和刘德华解耦了。可以安排不同的人来出演。
控制反转的含义:某一接口具体实现类的选择控制权,从调用类中移除,转交给第三方决定.控制反转后来也叫依赖注入,依赖注入:调用类对某一接口实现类的依赖关系有第三方(容器或者协助类)注入。
IOC依赖注入有三种方式。
- 构造函数注入
- 属性注入
- 接口注入
public MoAttack{ private Geli geli;// public void setGeli(Geli geli){// this.geli = geli;// } public MoAttack(GeLi geli){ this.geli = geli; } public void cityGateAsk(){ geli.responseAsk("墨者革离"); }}
以上就是构造函数依赖注入,和属性方法依赖注入的对比。
对于接口注入它的效果和属性注入无本质区别,有点多次一举的意思。
以上是协助类注入,还是自己写代码。但是我们的角色,导游可能都是海选的,即角色不是由导演选择,三者解耦。这时候就要用到容器了
spring就是这样的一个容器。它通过配置文件或者注解描述类与类之间的依赖关系,自动完成类的初始化和依赖注入的工作。
先实例化,然后依赖注入。
以上知识参考:精通spring4.x企业应用开发实战等相关书籍。
阅读全文
1 0
- 控制反转(依赖注入)IoC
- IOC控制反转(依赖注入思想)
- 栗子:控制反转(依赖注入)IOC
- IoC模式(控制反转、依赖注入)
- IoC模式(控制反转、依赖注入)
- 依赖注入(控制反转)IOC
- IOC控制反转(依赖注入思想)
- IOC(控制反转) DI(依赖注入)
- IOC控制反转(依赖注入)
- 依赖注入,控制反转容器(ioc)
- Spring Ioc(控制反转/依赖注入)
- 依赖注入 控制反转Ioc
- IoC模式(依赖、依赖倒置、依赖注入、控制反转)
- IoC(控制反转)和DI(依赖注入)
- IoC(控制反转)与DI(依赖注入)
- 解构控制反转(IoC)和依赖注入(DI)
- 控制反转(IoC)和依赖注入(DI)
- 控制反转(IOC)与依赖注入(DI)
- python爬虫实现网络股票信息爬取的demo
- 麻省理工大学公开课笔记:算法导论(三)——渐近符号、递归及解法
- 3. Longest Substring Without Repeating Characters
- easyUI 设置文本框是否可编辑
- n皇后问题
- IOC控制反转(依赖注入)
- ExoPlayer里里外外之:核心类和数据流
- css3--flex
- C++友元函数和友元类
- QT 嵌入exe应用程序 并获取鼠标事件 mouse keyboard event
- Axure RP 8最新激活码
- js中基本类型操作-----数组基本操作、字符串操作、json操作
- 数据库_1
- oracle的rownum和rowid区别