介绍
Delphi Spring Framework是一个国际性的社区开源项目,我们的使命是提供一个强劲的基础框架(Infrastructure Framework),帮助Delphi开发者开发健壮、灵活、扩展性强的企业级应用程序。本框架基于Embarcadero Delphi 2010 for Win32平台。
本项目授权许可为Apache License V2.0. 您可以自由使用,个人使用或商用。
架构
Delphi Spring Framework由下面3个类库组成:
- Spring.Base
提供框架的基础类库,部分类基于.Net Framework进行设计。
- Spring.Core
提供更高层次的核心功能,比如IoC容器。
- Spring.Extensions
包含了一些设计良好的实用功能,比如通用编号生成器。
特性
- 控制反转/依赖注入(Inversion of Control/Dependency Injection)容器
Spring.IoC命名空间提供了简单而强大的IoC/DI容器,它支持:
- 使用代码或属性来进行注册和注入
- 使用Fluent-style方式完成注册
- 支持强类型的接口,并提供编译器检查
- 多种预定义生命周期类型(Singleton/Transient/SingletonPerThread/Pooled)
- 支持构造函数注入、方法注入、属性注入和字段注入
- 可以为服务注册多种组件并使用名称进行标识
- 组件可以实现多种服务,并可以自动注册GUID接口作为服务
- 自动激活
- 循环依赖检查
- 支持反射或委托来实例化组件
- 多种生命周期接口(IInitializable, IStartable, IRecyclable, etc)
- Cryptography Library
Spring.Cryptography命名区间包含了下列密码学算法:
- 哈希算法 (MD5, SHA-1/256/384/512)
- 校验算法 (CRC-16, CRC-32)
- 对称算法 (DES, Triple-DES. 支持CipherMode, PaddingMode and IV)
- 随机数生成器
- Generic Collection Interfaces
Spring.Collections命名区间提供了.Net框架中存在的泛型容器接口:ICollection<T>, IList<T>, IDictionary<TKey, TValue>. 这3个接口都继承自System单元中的System.IEnumerable<T>和System.IEnumerable接口. 应使用TCollections类来创建这些接口的实例。
- Design Patterns
Spring.DesignPatterns命名区间包括了下面3个可重用的设计模式:
- 单例模式(Singleton Pattern)
- 观察者模式(Observer Pattern)
- 规约模式(Specification Pattern)
- Utility Classes
Spring.Utils和Spring.Utils.IO命名区间提供了很多封装好的工具类:
- TDriveInfo
- TEnvironment
- TOperatingSystem
- TMessageBox
- TBaseNCalculator
- TFileVersionInfo
- TFileSystemEntry
- TFileSearcher
- IFileEnumerable
- TNetwork
- Spring.System
- TInterfaceBase
- TArgument
- TBuffer
- TEnum
- TRtti
- TNullable<T>
- TLifetimeWatcher
- TObjectHolder<T>
- TVersion
- Numbering
Spring.Numbering命名区间提供了很多灵活的通用编号生成器。
- Live Templates
自从Delphi2006引入的动态模板可以大大提高我们的编程效率。项目中的“Code Templates”文件夹包含了近30个模板。
- Unit Tests
我们按照敏捷模式进行开发,并使用DUnit来进行单元测试。这可以在最大程度上保证代码质量,并使重构更加快速和安全。