Android源码访问者模式---HtmlDocument

本文探讨Android源码中的访问者模式应用,以UnifiedEmail项目中的HtmlDocument为例,解释如何使用访问者模式解析和操作Html文档。HtmlDocument作为Html节点容器,包含Comment、Text、Tag和EndTag等元素,通过Visitor访问不同节点,实现HtmlTreeBuilder和DebugPrinter等功能,适应Html元素多变的操作需求。
摘要由CSDN通过智能技术生成

访问者模式是设计模式中相对比较复杂的设计模式,在Android源码中的UnifiedEmail项目中的HtmlDocument就使用了访问者模式,Email中的内容可以是Html文档,而Html文档需要解析保存,HtmlDocument就是html节点的一个容器,本文将介绍HtmlDocument与访问者模式。文中对访问者模式介绍的会相对简单,如果想理解好,建议去看一下Gof的描述,更侧重于与Android源码的结合(源码基于6.0.1_r30)。原文发表在我的博客

访问者模式

首先看一下访问者模式相关内容。

意图

表示一个作用于对象内部结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

UML图

这里写图片描述

上面就是访问者模式的简单UML图,通过定义一个外在的Visitor来访问ObjectStructor对象结构中的Element,这样可以变化访问者来访问对象结构中的元素,但又不会影响元素内部结构。

代码示例

abstract class Visitor{
   
      public abstract void visitorElement1(ConcreteElement1 element);
      public abstract void visitorElement2(ConcreteElement2 element);
}

class ConcreteVisitor1 extends Visito
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值