关于IOC
来源:互联网 发布:手机能注册淘宝店吗 编辑:程序博客网 时间:2024/06/06 05:01
IOC = inverse of control 控制反转。控制反转是靠反射来动态生成对象,注入依赖关系的。让代码更加灵活。
1. http://www.qqread.com/erp/3/j380307_2.html
2.http://m-ittrue.iteye.com/blog/829744
构造注入
public class MoAttack{ private GeLi geli; public MoAttack(GeLi geli){ ① 注入革离的具体扮演者 this.geli = geli; } public void cityGateAsk() { geli.responseAsk(“墨者革离!”); }}
MoAttack的构造函数不关心具体是谁扮演革离这个角色,只要在①处传入的扮演者按剧本要求完成角色功能即可。角色的具体扮演者由导演来安排,如代码清单 3 4所示:代码清单 4 Director:通过构造函数注入革离扮演者public class Director{ public void direct(){ GeLi geli = new LiuDeHua(); ① 指定角色的扮演者 MoAttack moAttack = new MoAttack(geli); ② 注入具体扮演者到剧本中 moAttack.cityGateAsk(); }}在①处,导演安排刘德华饰演革离的角色,并在②处,将刘德华“注入”到墨攻的剧本中,然后开始“城门问答”剧段的演出工作。
setter注入
MoAttack在①处为geli属性提供一个setter方法,以便让导演在拍需要革离的戏时才将注入geli的具体扮演者,而不需要刘德华从头到尾跟着墨攻剧组跑。代码清单 6 Director:通过setter方法注入革离扮演者public class Director ...{ public void direct()...{ GeLi geli = new LiuDeHua(); MoAttack moAttack = new MoAttack(); moAttack.setGeli(geli); ① 调用属性setter方法注入 moAttack.cityGateAsk(); }}
和通过构造函数注入革离扮演者不同,在实例化MoAttack时,并未指定任何扮演者,而是在实例化MoAttack后,调用其setGeli()方法注入扮演者。按照类似的方式,我们还可以为剧本中其他如巷淹中,梁王等角色分别提供注入的setter方法,导演即可以根据所拍剧段的不同,注入所需要的角色了。
将客户类所有注入的方法抽取到一个接口中,客户类通过实现这一接口提供注入的方法。为了采取接口注入的方式,需要声明一个额外的接口:public interface ActorArrangable ...{ void injectGeli(GeLi geli);}然后,MoAttack实现这个接口并实现接口中的方法:代码清单 7 MoAttack:通过接口方法注入革离扮演者public class MoAttack implements ActorArrangable ...{ private GeLi geli; public void injectGeli (GeLi geli) ...{ ① 实现接口方法 this.geli = geli; } public void cityGateAsk() ...{ geli.responseAsk("墨者革离"); }}Director通过ActorArrangable的injectGeli()方法完成扮演者的注入工作。代码清单 8 Director:通过接口方法注入革离扮演者public class Director ...{ public void direct()...{ GeLi geli = new LiuDeHua(); MoAttack moAttack = new MoAttack(); moAttack. injectGeli (geli); moAttack.cityGateAsk(); }}由于通过接口注入需要额外声明一个接口,增加了类的数目,而且它的效果和属性注入并无本质区别,因此我们不提倡这种方式。
接口注入--spring没用这个 感觉跟setter注入很像
0 0
- 关于IOC
- 关于IOC
- 关于IOC和Spring
- 关于spring的IOC
- 关于IoC的介绍
- 关于Spring 注解 IOC
- 关于Spring的IOC
- 关于IoC的绝妙比喻
- 关于webwork的IOC容器
- 关于IoC的绝妙比喻
- 关于IOC(Inversion of Control)
- 关于Spring IOC原理阐述
- 关于Spring的IOC原理
- 关于IOC/DI的理解
- 关于Ioc & Unify 2.0介绍
- 关于spring的IoC本质
- 关于DIP,IoC,DI,以及IoC容器的一个说明
- 关于工厂模式和spring的IOC
- 科大讯飞SDK接入-actionScript3版 (续)
- Manacher
- cudaMemcpy2D()函数
- 22222222222222222222222222222222222
- 橙子引擎CEO尚韬:蓝海破冰,重新定义TV游戏
- 关于IOC
- qss样式表参考
- CamShift算法--认知
- 【官方博客】StrictMode API for Built-In Performance Monitoring
- 在jsp中自动提示jquery代码
- 【LeetCode】Validate Binary Search Tree 解题报告
- Android Native/Android service 详解
- 冒泡排序实现
- 第十四周项目六之阅读程序