论坛首页 Java企业应用论坛

关于IoC/DI的理解

浏览 5213 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-06-09   最后修改:2013-06-09
不知道发在这里合适不?很老的Martin Fowler的一篇文章:http://www.martinfowler.com/articles/injection.html,相信很多朋友都读过。马老的文笔和分析能力很犀利,但是文中的例子不太给力,没法完整运行,也许妨碍了对DI的理解,于是俺就试着对马老的文章做了一个补注,主要的想法是不使用成熟的picoContainer/Spring等框架技术而是自己实现一个非常简单的Container诠释IoC/DI的原理,并且每个例子都给出完整的可执行的代码以便读者马上可以上手实验和验证。

文章比较长就不贴在这里了,大家可以访问这里:http://dz.sdut.edu.cn/blog/subaochen/?p=260,文中的谬误和不足之处希望大家多多批评,谢谢!
   发表时间:2013-06-12  
基本上写完这个话题了,增加了CDI/Weld的MovieLister的实现,欢迎大家批评,谢谢!
0 请登录后投票
   发表时间:2013-06-12  
计划,每个例子都再增加一个SqliteMovieFinder(电影保存在Sqlite中的MovieFinder的实现),以便更好的说明组件的定位和依赖注入,不知道大家有何高见?
0 请登录后投票
   发表时间:2013-06-13  
老话题,看来就俺自己在玩了,呵呵。

更新了以下内容:

* 注解方式的依赖注入增加了SqliteMovieFinder的实现,以演示当存在多个实现时容器如何定位组件。
* 增加了CDI是如何支持组件(java SE环境下)式开发的简单示例,比较了SpringBean,picoContainer中的Bean,CDI bean的管理方式的异同。

0 请登录后投票
   发表时间:2013-06-13  
支持,写得好!
0 请登录后投票
   发表时间:2013-06-14  
JavaTear2014 写道
支持,写得好!


谢谢支持!文章写的比较长,大概大部分童鞋没有耐心读完,呵呵
0 请登录后投票
   发表时间:2013-06-14  
Martin Fowler喜欢玩概念,往往将简单的东西复杂化了。IOC最大的好处是代替的Facotry模式,仅此而已,但是带来的问题也不少。另外,实现一个IOC容器2个类,也就是几百行代码的事情。有兴趣可以参考:
http://code.google.com/p/beetle-j2ee-application-framework/downloads/list
0 请登录后投票
   发表时间:2013-06-14  
HenryYu 写道
Martin Fowler喜欢玩概念,往往将简单的东西复杂化了。IOC最大的好处是代替的Facotry模式,仅此而已,但是带来的问题也不少。另外,实现一个IOC容器2个类,也就是几百行代码的事情。有兴趣可以参考:
http://code.google.com/p/beetle-j2ee-application-framework/downloads/list


当你的项目有成千上万的组件的时候就会发现,DI不是把简单的问题复杂化了,而是把复杂的组件管理简单化了:-)。所以,DI不是简单的代替Factory模式,毕竟容器的作用比简单的Factory要大得多。

不知道你说的IoC带来的问题不少具体是指?愿闻其详,谢谢!

0 请登录后投票
   发表时间:2013-06-14  
subaochen 写道
HenryYu 写道
Martin Fowler喜欢玩概念,往往将简单的东西复杂化了。IOC最大的好处是代替的Facotry模式,仅此而已,但是带来的问题也不少。另外,实现一个IOC容器2个类,也就是几百行代码的事情。有兴趣可以参考:
http://code.google.com/p/beetle-j2ee-application-framework/downloads/list


当你的项目有成千上万的组件的时候就会发现,DI不是把简单的问题复杂化了,而是把复杂的组件管理简单化了:-)。所以,DI不是简单的代替Factory模式,毕竟容器的作用比简单的Factory要大得多。

不知道你说的IoC带来的问题不少具体是指?愿闻其详,谢谢!




只用两个类开发一个Ioc容器,会不会过于简单了?   本人最近在探讨Ioc容器的实现,下面为个人技术文章

http://blog.csdn.net/javatear/article/details/9089655
0 请登录后投票
   发表时间:2013-06-15   最后修改:2013-06-15
我打算把容器探讨的思想与使用写成播客,可能存在很多不足,希望帮忙指点一下,谢谢了!

http://blog.csdn.net/javatear/article/details/9089655
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics