在设计整个企业库的过程中,使用了一系列的最佳实践。下面列出一些里面的最佳实践:
- 在核心库中使用了Common模块
- 使用了统一的命名约定和统一的版本
- 在设计的过程中使用单元测试
- 在所有模块中包含基础结构
在企业库的模块中包含了下面的模式,当然还包括其他模式:
- 工厂模式,一个创建型模式,使用指定的类型创建另外一个对象。
- 插件模式,这种模式扩展了类的行为。在特殊的环境中创建一个子类,只包含所需的功能。
- 依赖注入模式,使用这个模式,你可以在类中注入对象,而不是依赖类创建对象。
一、工厂模式
工厂模式是软件设计模式中,创建模式的一种。企业库中广泛的使用了工厂模式。例如,在Caching模块,CacheFactory初始化一个CacheManger对象的实例,CacheManager创建一个CacheManagerFactory对象,然后创建一个Cache对象。Cache是后端数据在内存中的副本。创建Cache对象之后,应用程序可以使用CacheManager对象获取缓存中的数据,向缓存中添加数据,从缓存中移除对象。更多的信息请参看缓存模块。
数据访问模块以类似的方式使用工厂模式,客户端代码调用DatabaseFactory的静态方法CreateDatabase创建Database对象的实例。更多的信息参看数据访问模块。
二、插件模式
插件模式是一种在运行的时候创建对象或者接口的实例的软件模式。插件模式扩展了现有代码的行为,以便它可以实现更多的目的。它和使用类继承不一样,类继承可以对行为进行修改或者是重写,插件模式行为的修改是有限的。
使用插件模式,修改的行为(插件)和一个分布partial类相连接,轮流的和核心类连接。插件使用这个接口实现被核心类调用的方法,同时也可以调用核心类的新方法。
三、依赖注入模式
依赖注入模式允许你向类中注入对象,而不是依赖这个类来创建对象。这在下面的情况非常有帮助,在你想解耦一个你的应用中的特殊实现或者是部署的细节。依赖注入模式解耦服务或者是其他代码可能会依赖的在容器中存放。然后,处理代码相互依赖的责任,包括对象创建和连接,从对象本身移除,转移到其他实体。不像工厂模式,使用依赖注入模式,容器中的代码是被多个应用共享的。
在System.ComponentModel命名空间中,是一个微软关于依赖注入模式的实现。在企业库中,ObjectBuilder 和 Unity模块可以用来实现依赖注入模式。