DependencyResolutionLocatorKey 用来唯一标识在 ObjectBuilder 中存储的对象。ObjectBuilder 中会使用一种叫做“定位器”的对象(内部通过一个哈希表来存储对象)来存储需要被缓存的对象。当我们要创建的是一个可以被重复使用的对象(例如:设计模式中的“单件模式”),则应该第一次使用 ObjectBuilder 创建该对象后将其缓存,当下次再使用 ObjectBuidler 创建该对象时将直接返回上次创建的那个对象。
这个 DependencyResolutionLocatorKey 实际上就是一个用于标识对象关键字,ObjectBuilder 使用“类型/名称”对来标识一个对象,这样有利于“插件式”的开发。开发人员可以为某类插件定义一个所有该类型的“插件”都必
1using System;
2
3namespace Microsoft.Practices.ObjectBuilder
4{
5 /// <summary>
6 /// 表示一个 "类型/
7 /// 标识" 对,该类用
8 /// 于标识 "定位器"
9 /// 中的对象。
10 /// </summary>
11 /// <remarks>
12 /// 该类实际上是用来
13 /// 标识一个 "依赖对
14 /// 象" 的,而 "依赖
15 /// 对象" 一般是保存
16 /// 在 "定位器" 中的。
17 /// </remarks>
18 public sealed class DependencyResolutionLocatorKey
19 {
20
21 字段
25
26 属性
49
50 构造函数
72
73 公有方法
104
105 }
106}
2
3namespace Microsoft.Practices.ObjectBuilder
4{
5 /// <summary>
6 /// 表示一个 "类型/
7 /// 标识" 对,该类用
8 /// 于标识 "定位器"
9 /// 中的对象。
10 /// </summary>
11 /// <remarks>
12 /// 该类实际上是用来
13 /// 标识一个 "依赖对
14 /// 象" 的,而 "依赖
15 /// 对象" 一般是保存
16 /// 在 "定位器" 中的。
17 /// </remarks>
18 public sealed class DependencyResolutionLocatorKey
19 {
20
21 字段
25
26 属性
49
50 构造函数
72
73 公有方法
104
105 }
106}
须继承的基类(或接口),然后为每个“插件实现”指定一个名称。当我们需要创建该“插件”的对象时,只需要使用这个基类型(或接口类型)和为该“插件实现”指定的名称,就可以马上确定要创建的是哪个插件了。