zoukankan      html  css  js  c++  java
  • 企业库应用实践系列四:创建模板引擎框架

    截至目前,微软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();

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

  • 相关阅读:
    超级有用的15个mysqlbinlog命令
    表迁移工具的选型-复制ibd的方法-传输表空间
    误删mysql表物理文件的解决方法(不涉及恢复数据)
    美团SQL优化工具SQLAdvisor
    Linux网络状态工具ss命令使用详解
    MySQL应用架构优化-实时数据处理
    运维利器万能的 strace
    ngrep命令用法
    [Linux|DBA]运维三十六计
    sysbench使用
  • 原文地址:https://www.cnblogs.com/lvwuhuijun/p/1367909.html
Copyright © 2011-2022 走看看