Software--Architecture--DesignPattern IoC, Factory Method, Source Locator

本文探讨了FactoryMethod模式的局限性,并介绍了ServiceLocator模式及其如何通过一个简单的接口来集中管理服务资源。此外,还对比了IoC容器如何进一步解耦客户代码和服务实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 方法。

 

 

自动解析

 

转载于:https://www.cnblogs.com/masterSoul/p/8125737.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值