美文网首页
13. 行为扩展 - 访问者模式

13. 行为扩展 - 访问者模式

作者: 转岗做JAVA | 来源:发表于2021-10-09 09:42 被阅读0次
定义

访问者模式:表示一个作用于某对象结构中的各元素的操作。它让我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
是不是看上去跟category的效果一样一样的?

如何实现

开始实现前我们需要理解访问者模式有两个关键角色:访问者和被访问的元素,通常被访问的元素是一个部分-整体的组合结构。

  • 第一步:访问者定义操作各种元素的各种接口,并由具体的访问者实现这些接口(定义中的新操作)。
  • 第二步:各被访问元素抽象出新操作的一个接口,该接口接收一个访问者作为参数,各个元素实现该抽象接口,并根据自身类型调用访问者中对应的操作接口。至此访问者模式已经成型。
  • 最后:在客户端创建具体的访问者,调用被访问元素的抽象接口传入具体的访问者即可。
访问者模式与Category

我们可以看到访问者模式和Category能够达到相同的目标:不改变各元素类的前提下定义作用于这些元素的新操作。
不同的地方在于:访问者模式将新操作的算法都封装在了对应的访问者中,而Category会将算法分散在各个元素的Category中。

访问者模式的缺点

访问者会与被访问元素耦合在一起,当新增一种被访问元素时,必须要新增访问者对该类型元素的操作方法。即便可以在访问者接口层进行抽象处理,具体访问者实现时还是需要具体元素具体对待。

相关文章

  • 13. 行为扩展 - 访问者模式

    定义 访问者模式:表示一个作用于某对象结构中的各元素的操作。它让我们可以在不改变各元素的类的前提下定义作用于这些元...

  • 13.访问者模式 访问者模式也称为Visitor模式,使用这种模式后可以在不修改已有程序结构的前提下,通过额外添加...

  • 行为型模式:访问者模式

    文章首发:行为型模式:访问者模式 十一大行为型模式之十一:访问者模式。 简介 姓名 :访问者模式英文名 :Visi...

  • iOS设计模式五(访问者,装饰,责任链)

    承接上文iOS设计模式四(组合,迭代器)本文为行为扩展--获取源码 目录1 访问者模式2 装饰模式3 责任链模式 ...

  • 设计模式[23]-访问者模式-Visitor Pattern

    1.访问者模式简介 访问者模式(Visitor Pattern)模式是行为型(Behavioral)设计模式,提供...

  • 25.访问者模式(行为型)

    访问者模式(行为型) 一、相关概述 访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素两个主要组成...

  • 设计模式之访问者模式

    访问者模式是一种行为设计模式,它能将算法与其所作用的对象隔离开来。 访问者模式建议将新行为放入一个名为访问者的独立...

  • 访问者模式

    《java与模式》中是这样描述访问者模式作用的: 访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种...

  • 访问者模式

    访问者模式属于行为型模式。访问者模式是一种将数据结构和数据操作分离的设计模式。访问者模式比较复杂,而且实际使用的地...

  • Android设计模式——访问者模式(十一大行为型)

    1.访问者模式介绍 访问者模式时十一大行为型设计模式之一。 访问者模式是一种将数据操作与数据结构分...

网友评论

      本文标题:13. 行为扩展 - 访问者模式

      本文链接:https://www.haomeiwen.com/subject/cetqoltx.html