ioc是什么意思?IOC的原理及手动实现( 二 )


文章插图
代码实现
至此,我们基本完成了实现一个简单的IOC容器所需要的东西 。先看一下基本的类图:

ioc是什么意思?IOC的原理及手动实现

文章插图
基本代码实现:
n:
publicclassDefaultBeanDefinitionimplementsBeanDefinition{privateClassclazz;privateStringbeanFactoryName;privateStringcreateBeanMethodName;privateStringstaticCreateBeanMethodName;privateStringbeanInitMethodName;privateStringbeanDestoryMethodName;privatebooleanisSingleton;//setterpublicvoidsetSingleton(booleansingleton){isSingleton=singleton;}@OverridepublicClassgetBeanClass(){returnthis.clazz;}@OverridepublicStringgetBeanFactory(){returnthis.beanFactoryName;}@OverridepublicStringgetCreateBeanMethod(){returnthis.createBeanMethodName;}@OverridepublicStringgetStaticCreateBeanMethod(){returnthis.staticCreateBeanMethodName;}@OverridepublicStringgetBeanInitMethodName(){returnthis.beanInitMethodName;}@OverridepublicStringgetBeanDestoryMethodName(){returnthis.beanDestoryMethodName;}@OverridepublicStringgetScope(){returnthis.isSingleton?BeanDefinition.SINGLETION:BeanDefinition.PROTOTYPE;}@OverridepublicbooleanisSingleton(){returnthis.isSingleton;}@OverridepublicbooleanisPrototype(){return!this.isSingleton;}}

ioc是什么意思?IOC的原理及手动实现

文章插图

ioc是什么意思?IOC的原理及手动实现

文章插图
简单测试:实例bean:
publicclassUser{privateStringname;privateintage;//gettersetterpublicvoidinit(){System.out.println("init...");}publicvoiddestory(){System.out.println("destory...");}}
工厂类:
publicclassTestFactory{publicObjectcreateMethod(){returnnewUser();}publicstaticObjectstaticCreateMethod(){returnnewUser();}}
测试类:
ioc是什么意思?IOC的原理及手动实现

文章插图
总结
一个简单的容器就是这样实现的 。当然,我们这里只有基本的功能,但实际上还差得很远,比如带参数的bean实例化 。但是IOC的基本原理已经表达出来了,我们只需要在此基础上增加新的功能即可 。
郑重声明:本文版权归原作者所有,转载文章仅出于传播更多信息之目的 。如果作者信息标注有误,请尽快联系我们修改或删除,谢谢 。