CodeFactory
    CodeFactory是一个容器。
    1.能够添加流水线,并保证被添加的流水线符合系统定义的流水线的规范。并且它所依赖的组件(生成控制器、引擎、模板)都存在。
    2.能够移除流水线,移除的方式有:
        1)仅移除流水线本身。
        2)同时移除流水线所引用的组件(生成控制器、引擎、模板)。并保证被移除的组件不被其他组件引用。
    3.能够添加引擎,并保证被添加的引擎符合系统定义的规范。
    4.能够移除引擎,并保证被移除的引擎没有其他组件引用。
    5.能够添加生成控制器,并保证被添加的生成控制器符合系统定义的规范。
    6.能够添加模板。
    7.能够移除模板,并保证被移除的模板不被其他组件引用。
    8.流水线、引擎、模板、生成控制器在CodeFactory中都有一个唯一标识符。所有的组件都可以通过唯一标识符向CodeFactory
    请求获得对象实例。
    9.流水线使用帮助、引擎语法、生成控制器说明的加载、移除、呈现。
流水线
    流水线是争对指定环境下的代码生成解决方案的封装。
    1.负责创建代码生成上下文。
    2.负责向CodeFactory请求所需要的模板。
    3.负责向CodeFactory请求所需要的生成控制器。
    4.负责向CodeFactory请求所需要的引擎。
    5.负责将模板、代码生成上下文以及引擎分发给相应的生成控制器。并要求生成控制器执行代码生成动作。
    6.负责将所生成的代码保存为文件。
引擎
    引擎负责解析模板,并将模板与代码生成上下文相互结合(Merge),最终返回半成品/成品 代码。
    1.引擎的基本模式有Push、Pull、Mix。同时,引擎的模式也可以自定义。
    2.各种不同模式的引擎的输入是固定的,它们必然是代码生成上下文以及模板。区别在于他们的输出。不同模式下的输出各异。
    3.Push模式下,引擎负责将代码生成上下文Push进模板中,最终返回成品代码。
    4.Pull模式下,引擎负责解析模板内容,并将解析后的模板Pull出来,在生成控制器中作进一步加工,最终输出成品代码。
    5.Mix模式下,引擎首先解析模板,并将解析后的模板与代码生成上下文Merge,获得以成员的形式构成的代码。
    最后在生成控制器内作进一步加工,最终返回成品代码。(以成员的形式构成的代码能够支撑代码重复生成业务)
生成控制器
    生成控制器控制代码生成行为。是代码生成的指挥中心。
    1.它的输入是代码生成上下文、引擎、模板,输出的是代码内容。
    2.它控制引擎分析模板并与代码生成上下文Merge。
    3.当引擎输出的半成品代码时,由生成控制器作进一步的加工,获得所需要的成品代码,从这个角度而言,可以把它看作是引擎
    功能上的扩展。
代码生成上下文
    
    
    

posted on 2007-11-01 19:52  东风31  阅读(232)  评论(0)    收藏  举报