企业库4.0和4.1的主要改进是加入了全新的,而且很容易使用的对象创建方式,包括其他的依赖对象。这个功能在企业库的Unity模块中通过依赖注入暴露,它使用了下面这些常用的设计模式。
- Dependency Injection依赖注入
- Inversion of Control(IoC)反转控制
- Service Locator服务定位
- Service Container服务容器
- Factory工厂模式
- Builder创建者模式
一、企业库中的对象创建和依赖注入
开始之初,企业库中的应用模块,核心模块、配置系统,用户自己的一个用,一直都使用微软Patterns & Practices 团队的ObjectBuilder系统创建对象,包括了Singleton实例。
ObjectBuiler实现了前面列出来的很多模式,但是对于大多数程序员来说,它不是一个很容易使用的工具。使用它需要开发者拥有显著的开发知识和开发时间来认识到它的好处。因此,4.1的企业库在ObjectBuilder的基础上推出了一个轻量级的方法,提供了前面提到所有模式的实现。
新的依赖注入容器暴露的接口比较简单,它还提供扩展,方便开发者根据需要改变它的行为,而且开发者可以将它作为一个独立的容器或者是依赖注入框架在自己的系统中使用。它允许开发者使用很现代的方式,例如构造函数、属性和注入方法;相关对象的依赖注入;容器中的类型和接口映射;一些简单的配置。另外,开发者可以用它暴露的一些API直接和容器进行交互,这些对于开发者将依赖注入容器作为单独依赖注入框架使用,或者是使用第三方的依赖注入框架都很有帮助。
二、Unity模块
企业库中的依赖注入方法通过一个全新的,叫做Unity的模块暴露。这个模块实现了容器方式,和ObjectBuilder一起使用,包括了需要支持的程序集对象创建功能,依赖对象和服务的实例创建,对象创建时候的属性输入和方法调用。
你可以以多种方式来使用依赖注入容器,你可以以下面的方式使用Unity模块:
- 通过各个模块和核心模块中提供的标准方法创建企业库所需对象。
- 获取singleton实例的引用。
- 对现有的对象使用依赖注入。
- 创建自定义的对象,通常还需要创建和他们相关的对象。
- 为接口和实现类提供映射
- 使用容器扩展可以扩展功能,也可以改变行为
- 使用第三方的依赖注入框架,例如Castle,Windsor,Spring,在Unity容器中创建任何类型的对象。
未完待续。。。。。。。。。。。。。。。。。。。。。