First we try, then we trust

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  183 随笔 :: 111 文章 :: 2983 评论 :: 339 引用

最近阅读了黄忠成的Object Builder系列文章感到受益匪浅,所以将该系列文章整理了一番(将繁体转换为简体,另外对于一些习惯用法进行了调整,对文章及代码格式重新进行了调整,修订了文中几处小错误),现放上来供大家参考。

[转][黄忠成]Object Builder Application Block (1)
[转][黄忠成]Object Builder Application Block (2)
[转][黄忠成]Object Builder Application Block (3)
[转][黄忠成]Object Builder Application Block (4)

~~~~~~~~~~~~~~~~~~~~~~~~~~~

另外受这一系列文章的启迪,目前正在构思几篇新文章,初步题目定为《创建对象的方法及其应用》。目前文章用到的代码调试已经完成了大半,如果有时间我会开始着手文章写作工作。基本内容分以下几部分:

  • 1、CreateOjbWithNew

使用new命令完成对象的创建。(既然是一个系列,缺少此部分就不完整了)

  • 2、CentralizeObjCreation2Factory

针对接口编程(使主程序依赖于公共接口与工厂)

集中对象的创建(出现问题好找)

问题(仍然摆脱不了工厂对其它对象的依赖,仅仅实现了创建对象的集中管理而已)

  • 3、IndependentFactoryModel

使用Assemby以及CreateInstance方法创建对象,实现了工厂与产品间解耦。

  • 4、AddinSample

案例分析,使用上面模型实现一个插件结构的应用程序。该程序运行机制仿照SharpDevelop(当然是大大简化了)的AddinTree结构,只要在Addins目录下存放的文件会被自动的Pickup并容入主界面。

  • 5、BeforeDependencyInjection

为了后面的案例做准备工作。在没有Dependency Injection框架时,自己手工创建对象。

  • 6、DependencyInjectionWithConfig

自己实现的一个“依赖注入”框架(非常简单,纯粹演示目的),使用配置文件指导对象创建工作。

  • 7、DependencyInjection与Ioc

通过上面两个例子我们了解了什么是依赖注入,可为什么依赖注入为什么最开始叫做控制反转呢?本段内容揭示其中的联系以及“容器”这个概念的特殊含义。

  • 8、ObjectBuilder

可以将ObjectBuilder理解成一个智能加工工场,根据用户的不同订单策略在流水线上加工各种对象。该部分内容对ObjectBuilder做一个宏观的介绍。先将文中一张图放上来:

  • 9、TranslatorSampleUsingOB

对OB的一个实际应用案例。模拟TechEd英文会场,参会人员可根据需要选择不同的翻译服务,充分享受"容器"以及"依赖注入"的强大功能,系统借助ObjectBuilder实现。

 

posted on 2007-02-06 11:25 吕震宇 阅读(4720) 评论(18)  编辑 收藏

评论

#1楼  2007-02-06 11:31 shoucao      
沙发,先坐
  回复  引用  查看    

#2楼  2007-02-06 11:42 Anders Cui      
期待中...
  回复  引用  查看    

#3楼  2007-02-06 11:53 菌哥      
文中图片是我见过的最有意思的
  回复  引用  查看    

#4楼 [楼主] 2007-02-06 13:09 吕震宇      
@菌哥
这是我用Visio 2007 + PhotoShop绘制的,呵呵:-)
  回复  引用  查看    

#5楼  2007-02-06 13:43 Jeffrey Zhao      
@吕震宇
绘图也是能力阿,我就不会……:(
  回复  引用  查看    

#6楼  2007-02-06 15:07 无常      
图很漂亮
  回复  引用  查看    

这图好漂亮呀!
  回复  引用    

最近也在玩ObjectBuilder,原本想将NBear依赖的Castle的IoC改用OB实现,最后发现不完全可行。当前的OB严格说来还只是一个基于DI对象构建工厂(扩展性还不错,称得上一个框架),还不是一个对象容器。和castle的IoC容器相比,OB更关注(似乎也只关注)对象的创建过程,Castle的IoC则更关注容器中对象的管理(同时也可以控制对象的创建过程)。

所以,OB仅仅适合于DI对象的创建,它还不是一个容器,管理已创建的对象的能力非常弱,因此,不适合于管理已创建的这些对象。Castle或Spring.Net的IoC则更称得上容器。

这也说明了,为什么Castle和Spring.Net的IoC的介绍中能够说自己是IoC容器,而OB的官方资料也只说它是一个DI框架。
  回复  引用  查看    

#9楼  2007-02-06 22:39 yinh      
非常期待你的系列文章,有可能会成为ioc方面的最好入门文章。
现在讲ioc的文章上来就ioc而ioc,从不讲其发展过程,也就是对象创建的发展过程。希望吕兄的文章能弥补这个空缺
  回复  引用  查看    

#10楼  2007-02-07 10:15 呵呵 [未注册用户]
吕老师 ,有复活拉.
^_^
  回复  引用    

#11楼  2007-02-07 15:02 一瓢 [未注册用户]
黄忠诚老师的书是不错,他的两本书我都买过
  回复  引用    

朋友,您的博客写的真是太好了,我来过很多次了,我是做[url=http://www.008dns.com/">http://www.008dns.com/">http://www.008dns.com/">http://www.008dns.com/]域名注册[/url],[url=http://www.008dns.com/">http://www.008dns.com/">http://www.008dns.com/">http://www.008dns.com/store/web.php]虚拟主机[/url]的,网址是http://www.008dns.com ,有时间来看看,谢谢!如果可以的话,想跟您换个链接!dfhrtfj
  回复  引用    

#13楼  2007-02-09 23:19 陈子皓 [未注册用户]
老师,好久没有看到你的BLOG了,呵呵,好激动啊,~!最近可好,先祝新年快乐啊~!
学生:陈子皓
  回复  引用    

#14楼  2007-02-13 00:36 shenfx      
光看您列的文章目录,就能感觉到思路非常的清晰、条理逻辑性超强,不愧是老师啊,真正的深入浅出,等不及看您的文章了。
  回复  引用  查看    

#15楼  2007-02-26 14:45 lin-zhang      
期待 :)
  回复  引用  查看    

#16楼  2007-10-22 22:58 过客1 [未注册用户]
创建对象的方法及其应用 这文章什么时候出来呀,呵呵
  回复  引用    

#17楼 [楼主] 2007-10-29 10:06 吕震宇      
@过客1
最近一直很忙,科研和教学活动太多,所以实在没有时间将文章完整写出来,对不住大家了.
  回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-02-06 11:28 编辑过


相关链接: