访问者模式实现模式图、类图、顺序图

 

 

 

访问者模式

https://baike.baidu.com/item/访问者模式

访问者模式(Visitor Pattern)是GoF提出的23种设计模式中的一种,属于行为模式。据《大话设计模式》中说算是最复杂也是最难以理解的一种模式了。
定义(源于GoF《Design Pattern》):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。
从定义可以看出结构对象是使用访问者模式必备条件,而且这个结构对象必须存在遍历自身各个对象的方法。这便类似于Java语言当中的collection概念了。
 
中文名
访问者模式
外文名
Visitor Pattern
提出者
GoF
类    型
行为类模式
 

 https://mp.weixin.qq.com/s/lO77uCXzOlZAcsXJ8VS81A

Gof23种设计模式(23)——访问者模式

任钢 架构设计模式 2015-10-19
 

 

图1 访问者模式结构

 抽象访问者(Visitor)角色:声明了一个或者多个访问操作,形成所有的具体元素角色必须实现的接口。

 具体访问者(Concrete Visitor)角色:实现抽象访问者角色所声明的接口,也就是抽象访问者所声明的各个访问操作。

 抽象节点(Node)角色:声明一个接受操作,接受一个访问者对象作为一个参量。

 具体节点(Node)角色:实现了抽象元素所规定的接受操作。

 结构对象(Object Structure)角色:有如下的一些责任,可以遍历结构中的所有元素;如果需要,提供一个高层次的接口让访问者对象可以访问每一个元素;如果需要,可以设计成一个复合对象或者一个聚集,如列(List)或集合(Set)。

应用场景举例

比如公司一般都要接受多方面的审查,对于工商部门,看看是否符合商务审计。对于税务部门,看看是否合法纳税。对于会计师事务所,要对公司进行财务审计。这些部门都是外部的参观者。抽象访问者(Visitor)角色:工商部门、税务部门和会计师事务所是具体访问者角色。定义一个抽象公司的抽象节点角色。不同的公司工商情况,税务情况和会计情况就是具体节点角色。用例如图2所示。

 

 

图2 访问者模式类图

 

 

 

 

图3 访问者模式类图

 

 

 

 

图4 访问者模式实现顺序图

 

 

 

 

 

 

 

 

 

posted @ 2019-04-19 01:26  papering  阅读(983)  评论(0编辑  收藏  举报