当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

深化浅出基于Java的注释器筹划情势[Java编程]

赞助商链接



  本文“深化浅出基于Java的注释器筹划情势[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

1、引子

其实没有什么好的例子引入注释器情势,因为它描写了若何构成一个简单的语言注释器,主要利用在利用面向对象语言开辟编译器中;在实际利用中,我们大概很少碰到去构造一个语言的文法的情形.

固然你几近用不到这个情势,但是看一看还是能遭到一定的启迪的.

2、定义与构造

注释器情势的定义以下:定义语言的文法,并且成立一个注释器来注释该语言中的句子.它属于类的行为情势.这里的语言意思是利用规定格局和语法的代码.

在GOF的书中指出:假如一种特定范例的问题发生的频率充足高,那么大概就值得将该问题的各个实例表述为一个简单语言中的句子.这样便可以构建一个注释器,该注释器通过注释这些句子来办理该问题.并且当文法简单、效率不是关键问题的时刻效果最好.

这也就是注释器情势利用的环境了.

让我们来看看奥秘的注释器情势是由什么来构成的吧.

1) 抽象表达式角色:声明一个抽象的注释操作,这个接口为全部具体表达式角色(抽象语法树中的节点)都要实现的.

什么叫做抽象语法树呢?《java与情势》中给的注释为:抽象语法树的每一个节点都代表一个语句,而在每个节点上都可以履行注释办法.这个注释办法的履行就代表这个语句被注释.由于每一个语句都代表这个语句被注释.由于每一个语句都代表一个常见的问题的实例,因此每一个节点上的注释操作都代表对一个问题实例的解答.

2) 终结符表达式角色:具体表达式.

a) 实现与文法中的终结符相关联的注释操作

b) 并且句子中的每个终结符需求该类的一个实例与之对应

3) 非终结符表达式角色:具体表达式.

a) 文法中的每条法则R::=R1R2…Rn都需求一个非终结符表带式角色

b) 关于从R1到Rn的每个标记都保护一个抽象表达式角色的实例变量

c) 实现注释操作,注释普通要递归地调用表示从R1到Rn的那些对象的注释操作

4) 上下文(环境)角色:包含注释器之外的一些全局信息.

5) 客户角色:

a) 构建(大概被给定)表示该文法定义的语言中的一个特定的句子的抽象语法树

b) 调用注释操作

放上张注释器构造类图吧,这也是来自于GOF的书中.

对每一个角色都给出了具体的职责,并且在类图中给出五个角色之间的关系.这样实现起来也不是很艰难了,下面举了一个简单的例子,但愿能加深你对注释器情势的理解.


  以上是“深化浅出基于Java的注释器筹划情势[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 深化浅出Netfilter/iptables防火墙框架(底子篇)
  • 数据库计划范式深化浅出
  • 深化浅出基于Java的责任链情势
  • 深化浅出基于Java的制作筹划情势
  • 深化浅出谈垃圾的回收—Java堆的管理
  • <b>深化浅出Java筹划情势之迭代器情势</b>
  • 深化浅出基于Java的代理筹划情势
  • 深化浅出Java多线程(1)-办法join
  • 深化浅出Java多线程(2)-Swing中的EDT(事件分发线程)
  • 深化浅出基于Java的注释器筹划情势
  • 深化浅出Java堆的管理 - 垃圾回收
  • 深化浅出Java的访谒者情势
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .