- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
springioc_有关spring框架中的IoC的幽默解
springioc:有关spring框架中的IoC的幽默解
释
疯狂代码 http://CrazyC/ ĵ http:/CrazyC/Java/Article47483.html
IoC就是InversionofControl控制反转在Java开发中IoC意味着将你设计好类交给系统去控制而不是
在你类内部控制这称为控制反转
下面我们以几个例子来介绍说明什么是IoC
假设我们要设计个Girl和个Boy类其中Girl有kiss思路方法即Girl想要Kiss个Boy那么我们问题是Girl如何能
够认识这个Boy?
在我们中国常见MM和GG认识方式有以下几种
1、青梅竹马;
2、亲友介绍;
3、父母包办
那么哪种才是最好呢?
青梅竹马:Girl从小就知道自己Boy
publicGirl{
voidkiss{
Boyboy=Boy;
}
} 然而从开始就创建Boy缺点就是无法在更换并且要负责Boy整个生命周期如果我们Girl想要换个如何办
?(笔者严重不支持Girl经常更换Boy)
亲友介绍:由中间人负责提供Boy来见面
publicGirl{
voidkiss{
Boyboy=BoyFactory.createBoy;
}
} 亲友介绍固然是好如果不满意尽管另外换个好了但是亲友BoyFactory经常是以Singleton形式出现不然就
是存在于Globals无处不在无处不能实在是太繁琐了点不够灵活我为什么定要这个亲友掺和进来呢?为什么定要
付给她介绍费呢?万最好朋友爱上了我男朋友呢?
父母包办:切交给父母自己不用费吹灰的力只需要等着Kiss就好了
publicGirl{
voidkiss(Boyboy){
//kissboy
boy.kiss;
}
} Well这是对Girl最好思路方法只要想办法贿赂了Girl父母并把Boy交给他那么我们就可以轻松和Girl来
Kiss了看来几千年传统父母的命还真是有用哦!至少Boy和Girl不用自己瞎忙乎了
这就是IOC将对象创建和获取提取到外部由外部容器提供需要组件
我们知道好莱坞原则:“Donotcallus,wewillcallyou.”意思就是
You,girlie,donotcalltheboy.Wewillfeedyouaboy
我们还应该知道依赖倒转原则即DependenceInversionPrincinpleDIPEricGamma说要面向抽象编程面向
接口编程是面向对象核心
组件应该分为两部分即Service,所提供功能声明Implementation,Service实现好处是:多实现可以任意切换
防止“everythingdependsoneverything”问题.即具体依赖于具体
所以我们Boy应该是实现Kissable接口这样旦Girl不想kiss可恶Boy话还可以kiss可爱kitten和慈祥
grandmother
2、IOCtype
IoCType指是Girl得到Boy几种区别方式我们逐来介绍说明
IOCtype0:不用IOC
publicGirlimplementsServicable{
privateKissablekissable;
publicGirl{
kissable=Boy;
}
publicvoidkissYourKissable{
kissable.kiss;
}
} Girl自己建立自己Boy很难更换很难共享给别人只能单独使用并负责完全生命周期
IOCtype1先看代码
publicGirlimplementsServicable{
Kissablekissable;
publicvoidservice(ServiceManagermgr){
kissable=(Kissable)mgr.lookup(“kissable”);
}
publicvoidkissYourKissable{
kissable.kiss;
}
} 这种情况出现于AvalonFramework个组件实现了Servicable接口就必须实现service思路方法并传入个
ServiceManager其中会含有需要其它组件只需要在ser
您可能关注的文档
- SATURN研究(他汀对冠脉硬化斑块负荷变化之影响的最大规模临床研究)结果公布.pdf
- SASSPSS_和Stata的比较.pdf
- SATWE中结构整体参数的控制.pdf
- SATWE结构整体计算时设计参数的合理选取(十三).pdf
- SBR工艺处理城镇生活污水的研究.pdf
- SAT写作三大常见问题及改进方法.pdf
- SBR工艺运行中活性污泥沉降性下降的原因分析及对策.pdf
- SBR工艺的现状与发展.pdf
- SBS对BR_CR共溷物结构与性能的影响.pdf
- SBS改性沥青基吸水膨胀防水材料的研制.pdf
- 基于2025年政策导向的区域医疗资源配置模式创新研究报告.docx
- 2025年跨境电商独立站访客行为分析报告.docx
- 人工智能在2025年医疗诊断中的智能语音助手与交互.docx
- 汉服行业用户画像与品牌忠诚度研究.docx
- 绿色金融助力“双碳”目标:2025年绿色金融产品创新与市场拓展报告.docx
- 2025年康复医疗产业技术创新与应用前景白皮书.docx
- 人工智能在2025年医疗诊断中的隐私保护与伦理挑战.docx
- 种业升级新路径,2025年农业生物技术突破应用研究报告.docx
- 人工智能医疗诊断2025:突破技术障碍的产业分析.docx
- 2025年跨境电商运动服饰智能仓储分拣系统行业竞争格局分析报告.docx
文档评论(0)