第一阶段:HelloWorld
第一篇:创建第一个自己的Application Block
第二篇:Application Block生成原理详解
第三篇:自定义功能类的构造函数
第二阶段:实战模板引擎
第四篇: 创建模板引擎框架
第五篇: 创建模板引擎Library
第六篇:构建模板引擎处理逻辑
第七篇:实现模板引擎
第八篇:第二阶段回顾
以下为第四篇内容
从本篇开始,我们将利用Enterprise Library创建一个模板引擎应用程序块。今天的主要任务是创建模板引擎框架。
在开始之前,再次总结一下构建应用程序块的几个原则:
一、使用方便,对于最终的类库使用者,只须知道功能的接口和调用功能的方法即可。
二、避免暴露过多的类,以混淆代码使用者。
三、尽可能遵循微软.net类库设计指南
四、尽可能做到代码复用。
五、使用设计模式,使得代码松耦合。
六、应用程序块应该具有可扩展性
我们今天要构建的类库名称叫TemplateEngineer.该类库总的只有一个输入:一个String类型的template,只有一个输入:就是将template切分后的代码片断模型。
围绕这个思路我们分步完成模板引擎框架的构建
一、设计我们要用到的功能接口
1、新建用于表达代码片段的接口ISegment和抽象基类Segment。
二、设计用于表达类库输入的代码片断集合的类SegmentCollection
该类拥有泛型类Collection<ISegment>的一切属性,为了方便内部调用,我们增加一个方法AddRange使得两个SegmentCollection可以拼接。有兴趣的朋友还可以重载操作符实现这一功能。
三、设计用于表达整个应用程序块功能的接口ISourceResolver。
该接口可以很好地表示该应用程序块的“输入”和“输出”。即传入一段html代码,类库将其分解为若干片断组成的集合。
四、设计用于提供应用程序块功能的统一外观SourceResolvers
五、设计一个标准的工厂类,用于生成功能类的实例。
至此应用程序块框架到此搭建完成。
我们的下一步目标是使得一句简单的代码:
ISoureResolver resolver = SourceResolvers.GetResolver();
可以得到正确的返回结果。敬请期待。