在之前的 Unity(一):从ObjectBuilder说起  一文中,介绍了Unity的底层框架ObjcetBuilder。同时我稍微也提了一句:他们(patterns & practices)再次犯了拖期的老毛病(说句公道话,这个毛病当属其中的Enterprise Library团队最为突出)。没想到,今天看到Unity的掌门Grigori说:Unity release date is moved to April 7。又有得等了:)

       实在不想针对目前的不稳定版本做介绍,主要是看到3月12号的版本比一个月前的CTP有了很大的改动,怕了!不想等正式版出来之后,目前的介绍中的代码编译一下n多错误——如果不彻头彻尾的改一遍的话。这里有篇文章介绍了这两个版本之间的改动:IoC Container, Unity and Breaking Changes Galore。Huh!之前TerryLee也有一篇介绍的文章:依赖注入容器Unity Application Block(1):快速入门,是针对2月的CTP的,嗯,没错,他的示例代码中用到的API现在都变了...

       不过,在这个时候做一些总体性的介绍还是合适的,毕竟大的方向已经不会变的。嗯,至少我是这么想的...

 

Unity是什么?

        Unity是patterns & practices团队开发的一个轻量级、可扩展的依赖注入容器,具有如下的特性:

1. 它提供了创建(或者装配)对象实例的机制,而这些对象实例可能还包含了其它被依赖的对象实例。

2. Unity允许将预先配置的对象注入到类中,实现了inversion of control (IoC)的功能。在Unity中,支持constructor injection(构造器注入), property setter injection(属性设值注入)以及method call injection(方法注入)。ps:这里的方法注入与Martin Fowler定义的接口注入类似而稍有区别。

3. 支持容器的体系结构。一个容器可以有子容器,允许从子容器到父容器的对象定位查询。

4. 可以通过配置文件进行准备和配置容器。

5. 不会影响到类的定义(属性设值注入和方法注入除外),这也是轻量级容器的一个体现。

6. 支持自定义的容器扩展。

posted on 2008-03-25 13:21  赤脚小子  阅读(14666)  评论(7编辑  收藏  举报