关于spring框架中的IoC的幽默解释

豆豆网   技术应用频道   2008年03月28日    社区交流

内容摘要:本文使用幽默的说法来解释什么是IoC,它们之间的认识方式,简明易懂。假设我们要设计一个Girl和一个Boy类,其中Girl有kiss方法,即Girl想要Kiss一个Boy。那么,我们的问题是,Girl如何能够认识这个Boy?

  另外,J2EE中从Context取得对象也属于type1。

  它依赖于配置文件

<container>
<componentname=“kissable“class=“Boy">
<configuration>…</configuration>
</component>
<componentname=“girl"class=“Girl"/>
</container>

  IOCtype2:

publicclassGirl{
privateKissablekissable;
publicvoidsetKissable(Kissablekissable){
this.kissable=kissable;
}
publicvoidkissYourKissable(){
kissable.kiss();
}
}

  Type2出现于SpringFramework,是通过JavaBean的set方法来将需要的Boy传递给Girl。它必须依赖于配置文件。

<beans>
<beanid=“boy"class=“Boy"/>
<beanid=“girl“class=“Girl">
<propertyname=“kissable">
<refbean=“boy"/>
</property>
</bean>
</beans>

  IOCtype3

publicclassGirl{
privateKissablekissable;
publicGirl(Kissablekissable){
this.kissable=kissable;
}
publicvoidkissYourKissable(){
kissable.kiss();
}
}

  这就是PicoContainer的组件。通过构造函数传递Boy给Girl。

PicoContainercontainer=newDefaultPicoContainer();
container.registerComponentImplementation(Boy.class);
container.registerComponentImplementation(Girl.class);
Girlgirl=(Girl)container.getComponentInstance(Girl.class);
girl.kissYourKissable();

来源:Java研究组织    责编:豆豆技术应用

正在加载评论...