设计模式-访问者模式(visitor)以及JDK类库中的应用

访问者模式是一种设计模式,它定义了一个作用于对象结构的操作接口,允许在不修改元素类的情况下添加新的操作。模式包括抽象访问者、具体访问者、抽象元素和具体元素。这种模式的优点在于能解耦数据结构和操作,但可能违反迪米特法则和依赖倒转原则。常见应用场景是当对象结构稳定且需要添加多种操作时。在JDK中,`javax.lang.model.element.Element`和`ElementVisitor`等类体现了访问者模式的应用。
摘要由CSDN通过智能技术生成

访问者模式

定义

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

结构

Visitor:抽象访问者类,为该对象结构中的每一个类声明visit操作。

ConcreteVisitor:具体抽象类,实现visit操作,将ConcreteElement作为方法参数。

Element:抽象元素类,定义一个accpet接口,将visior作为方法参数。

ConcreteElement:具体元素类,实现accept操作。

类图

抽象访问者:

abstract class Visitor {
	private String action;
	public abstract void visitConcreteElementA(ConcreteElementA concreteElementA);
	public abstract void visitConcreteElementB(ConcreteElementB concreteElementB);
	public String getAction() {
		return action;
	}
	public void setAction(String action) {
		this.action = action;
	}
	
}

具体访问者A:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值