zoukankan      html  css  js  c++  java
  • 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的新语义的例子:

  • Facility:TypedFactory
  • Facility:Startable

    集成
    以下的Facilities是加入到MicroKernel的集成方案的示例

查看全文
  • 相关阅读:
    分析 ajax 请求并抓取 “今日头条的街拍图”
    requests + 正则表达式 获取 ‘猫眼电影top100’。
    爬虫基础(暂缓更新)
    Git 操作笔记:分布式版本控制系统
    python补充
    python基础
    8.最佳电影聚类分析
    文本分析 笔记
    7.文档聚类
    5.词项相似度分析
  • 原文地址:https://www.cnblogs.com/wuxilin/p/381430.html
  • Copyright © 2011-2022 走看看