2017-12-27 11:13:24
一: Factory Method , Source Locator , IoC
1. Factory Method 模式自身的缺陷在于:当引入越来越多的依赖关系(因而有更多创建服务的方式)时,
为了适应不同的 xxxService 依赖组合,该类上的方法数目也将随之增加。
工厂的客户代码与 xxxService 的单个实现紧密耦合在一起,如果客户所需的 xxxService 类的类型发生变动,
就需要对调用的工厂类方法进行修改。
2. Source Locator作用是充当一个集中化的服务资源库,有一个简单的接口,该接口了解如何获取应用程序所需的任何服务。
Service Locator 提供方法来注册服务,通常每项服务拥有一个字面值名称或拥有一个对象类型可用来解析这些服务。
Service Locator 不是为服务的不同变种来定义大量的不同工厂方法,而是有一个 Resolve 方法可用来获取给定键的服务。
与Factory Method 模式类似, Service Locator 模式隐藏了把服务所需的依赖对象连入服务的复杂性,
不同之处在于其抽象程度要比 Factory Method 模式更高。
3. IoC 容器
以上二者的共同点是:客户代码负责获取或取回服务以及它的所有依赖关系。Factory Method 模式和 Service Locator 模式
虽然不需要客户代码知道如何构造服务,但仍然要求客户代码指定需要哪一个服务实现。
IoC 容器所做的就是完全将这种关系倒置过来,将服务注入到客户代码中。
使用 IoC容器时,客户代码能够只依赖接口或抽象类,而不关心在运行时由谁来提供具体实现。
ModelRegistry 经过简单的设定,当向其询问特定的类型时它将返回一个具体的实现。
然后在 ConfigureStructureMap 方法中利用 StructureMap 框架来初始化 Registry.
也有其他方法 通过特性 或者 XML 文件来配置。
在启动是配置依赖关系,向 global.asax 文件,在 Application_Start 事件中添加调用 ConfigureStructureMap 方法。
自动解析