设计模式第二章第八节资料.pptVIP

  • 5
  • 0
  • 约8.43千字
  • 约 34页
  • 2016-06-21 发布于湖北
  • 举报
既然CheckMe对于访问者并不合适,因为访问者不检查任何东西。故我们要使用一个更加通用的名字:Accept,其参数也应该改成Visitor,以反映它能接受任何一个访问者这一事实。现在定义一个新的分析只需要定义一个新的Visitor子类——我们无需触及任何图元类。通过在Glyph及其子类中增加这一操作,我们就可以支持以后的所有分析方法。 我们已经看到怎样做拼写检查了。我们可以在 HyphenationVisitor中使用类似的方法来累积文本,但一旦HyphenationVisitor的VisitCharacter操作用于处理整个单词,它的工作方式将略有不同。它并不是检查单词的拼写错误,而是使用一个连字符算法决定单词可能的连字符点的位置( 如果有的话)。然后在每一个连字符点,插入一个Discretionary 图元。 Discretionary图元是Glyph子类Discretionary的实例。 一个Discretionary图元有两种可能的外观,这决定于它是否是一行的最后一个字符。如果它是最后一个字符,那么Discretionary看起来像一个连字符;如果不是,那么Discretionary不显示任何东西。 Discretionary检查它的父对象(一个行对象)来判断它是否是最后的子女。 Discretionary在每次被激活画自己或计算它的边界时,都要作这个检查。格式化策略

文档评论(0)

1亿VIP精品文档

相关文档