IOC:主要概念

 

题记:
         这是一篇译文,出自Castle的官方站点的文档中心,围绕着IOC的基本概念介绍了Castle里面的MicroKernel 和Facility等,对于想学习Castle.Windsor的朋友来说,仔细阅读本文将让之后的学习有个较为清晰的轮廓.E文好的朋友可以直接去看原文,地址是:http://www.castleproject.org/index.php/IoC:Main_concepts  上面还有许多的好文章,如果有朋友需要,我将陆续的再翻译一些:)(翻译的不好就请包涵了,呵呵)


IoC:主要概念
对容器,尤其是MicroKernel的概念的深刻理解将有助于你对它的熟练使用尤其是扩展。
内容结构:
1,什么是控制反转的容器?
 1.1 什么是Castle的MicroKernel
2,概念
 2.1服务/组件
 2.2子系统
 2.3Facilities
   2.3.1 新的语义
   2.3.2 集成

什么是控制反转的容器?
所谓的控制反转的容器是种可以注册类,并在适当的时候对它们作用的工具—通常是要执行一些有用的工作,否则就没有意义了.

在非常底层的地方,容器将通过类之间的依赖关系将它们联系起来,通常被称做自动装配.但你这么做的理由是什么呢?这只在你需要设计一个松耦合的应用程序时才是有意义的.如果你的设计方案是标准的意大利面条似的设计,那控制反转的容器帮不了你太多.

不过,这篇文章并不是要尽力说服你来相信IOC概念的益处.


什么是Castle的MicroKernel
MicroKernel是IOC容器在Castle上的一个具体实现.它将有益于提供一组"特色"的交集,这个交集将对一系列组件起作用而不让他们互相影响
例如,你可以为你的组件使用AOP,日志和事务处理.你的组件并不需要关心有什么作用在他们上面,同时,AOP也不会干扰日志和事务等等.我们把这些包装好的"特色"称为Facilities.以后我们将更多的讨论它们.


概念
从最开始,我们就不打算创建一个可以支持开发者们所遇到的每个场景的容器.相反,我们把精力都投入在创建一个轻量级并且高可扩展性的容器上.
这里所说的扩展并不是像你创建子类来丰富父类那样的垂直扩展.虽然你可以那么干,但是MicroKernel是被设计成你可以通过替换关键块或者向里注册Facilities来达到垂直或水平扩展的效果.
在深入更具体的细节前,认可这个关键概念对于余下的文档的理解将是非常重要的.


服务/组件
一个组件,就是一个小小的可重用的代码单元.它只暴露和实现一个服务.在实际应用中,一个组件就是一个从服务(接口)实现出来的类.这个接口就是服务的契约,通过它们我们可以构建一个抽象层,当我们替换服务的具体实现时,将不产生任何的错误.


子系统
子系统被MicroKernel用于操作它外部的一些东西.比如,配置和类型转换被子系统操作,它们可以轻易的被替换或者扩展以适应某个需求,只需要遵守契约即可.


Facilities
Facilities是单元的扩展.它增强了容器的功能,提供了新的语义并且常常与外部工具或框架集成到一起.我们当前就拥有一组Facilities,你可以使用它们尤其是通过观察它们的实现方式来学习更多的知识.

新语义
以下的Facilities是加入到MicroKernel的新语义的例子:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值