Castle介紹

夏新翰
2023-12-01

Castle的核心是个轻量级(Lightweight)容器(Container),实现了IoC(Inversion of Control)模式的容器,基于此核心容器所建立的应用程序,可以达到程序组件的松散耦合(Loose coupling),让程序组件可以进行测试(Testability),这些特性都使得整个应用程序可以在架构上与维护上都能得到相当程度的简化。

  • 轻量级(Lightweight)

Castle的核心的程序集只有不到 1MB 的大小,而使用 Castle核心所需要的资源也是很小的,而 Castle是个非侵入性(Nonintrusive)框架,它的目的之一,是让应用程序不感受到框架的存在,减低应用程序从框架移植时的负担。

  • 容器(Container)

Castle核心本身是个容器,管理对象的生命周期、对象的组态、相依注入等,并可以控制对象在创建时是以 原型(Prototype) 或 单例(Singleton) 的方式来建立。

  • IoC(Inversion of Control)

Castle的核心概念是IoC,IoC的核心思想是通过消除直接的代码编写并配置需要依赖的服务,来促进松散耦合设计。IoC更具体而易懂的名词是依赖注入(Dependency Injection),使用 Castle,您不必自己在程序代码中维护对象的依赖关系,只需在组态档中加以设定,Castle核心容器会自动根据组件将依赖注入指定的对象。

除了这些特性之外,Castle的目标是实现一个全方位的整合框架,在 Castle框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方案加以替代,Castle希望提供 one-stop shop 的框架整合方案。

  • 持久层

Castle提供对持久层的整合,如 ADO.NET、O/R Mapping工具(NHibernate、iBATIS.NET)、ActiveRecord、事务处理等。

  • Web 框架

Castle也提供 Web 框架的解决方案,Castle MonoRail - 一个构建于ASP.NET(不要和ASP.NET中的WebForms混淆)之上的Web框架。它以控制器作为Web应用程序中的主要角色,决定流程,委托到其他层并选取视图来呈现,因此它只关心应用程序的流程逻辑。视图,另一方面也只关注表现逻辑。这是和标准的WebForms模式最大的不同之处。但您也可以将自己所熟悉的 Web 框架与 Castle整合,像 WebForm 等,都可以与 Castle整合而成为适用于自己的解决方案。

对于一些服务,例如 Remoting、Mail、WCF、缓存、任务调度等,Castle不直接提供实现,而是采取抽象层方式进行包装,让这些服务在使用时可以有一致的使用模式且更为方便。

 类似资料: