截至目前,微软Enterprise Library已不断更新至4.1版本,但其精髓仍然是方便开发者快速开发自己的应用程序块。目前介绍Enterprise Library的文章大部分侧重于如何应用其中已有的应用程序块,如Data Access。而对如何创建自己的Enterprise Library则鲜有涉足。本系列笔者将侧重于介绍如何基于Enterprise Library的核心——Configuration和ObjectBuilder,构建属于企业自己的应用程序块以及期间可能出现的一些问题。此方面的高手请飘过。


第一阶段:HelloWorld

第一篇:创建第一个自己的Application Block
第二篇:Application Block生成原理详解
第三篇:自定义功能类的构造函数

第二阶段:实战模板引擎

第四篇: 创建模板引擎框架
第五篇: 创建模板引擎Library
第六篇:构建模板引擎处理逻辑
第七篇:实现模板引擎
第八篇:第二阶段回顾

以下为第四篇内容

从本篇开始,我们将利用Enterprise Library创建一个模板引擎应用程序块。今天的主要任务是创建模板引擎框架。

在开始之前,再次总结一下构建应用程序块的几个原则:

一、使用方便,对于最终的类库使用者,只须知道功能的接口和调用功能的方法即可。
二、避免暴露过多的类,以混淆代码使用者。
三、尽可能遵循微软.net类库设计指南
四、尽可能做到代码复用。
五、使用设计模式,使得代码松耦合。
六、应用程序块应该具有可扩展性

我们今天要构建的类库名称叫TemplateEngineer.该类库总的只有一个输入:一个String类型的template,只有一个输入:就是将template切分后的代码片断模型。

围绕这个思路我们分步完成模板引擎框架的构建

一、设计我们要用到的功能接口

1、新建用于表达代码片段的接口ISegment和抽象基类Segment。

ISegment

 

Segment

 
二、设计用于表达类库输入的代码片断集合的类SegmentCollection

 

SegmentCollection


该类拥有泛型类Collection<ISegment>的一切属性,为了方便内部调用,我们增加一个方法AddRange使得两个SegmentCollection可以拼接。有兴趣的朋友还可以重载操作符实现这一功能。

三、设计用于表达整个应用程序块功能的接口ISourceResolver。

ISourceResolver


该接口可以很好地表示该应用程序块的“输入”和“输出”。即传入一段html代码,类库将其分解为若干片断组成的集合。

四、设计用于提供应用程序块功能的统一外观SourceResolvers

SourceResolvers


五、设计一个标准的工厂类,用于生成功能类的实例。

SoureceResolveFactory


至此应用程序块框架到此搭建完成。

我们的下一步目标是使得一句简单的代码:

ISoureResolver resolver = SourceResolvers.GetResolver();

可以得到正确的返回结果。敬请期待。

 posted on 2009-01-04 11:26  吴辉军  阅读(633)  评论(0编辑  收藏  举报