访问者模式(Visitor Pattern)
访问者模式:使用一个访问者类,改变元素的行为。通过这种方式,随着访问者的改变,被访问者的行为可以被改变。
类图:
实现Master接口的具体类是行为需要被改变的对象。
实现Visitor接口的具体类是访问者,访问者不同,实现Master接口的具体类的行为不同。
public interface Master { public abstract String getName(); } public class ConcreteMaster implements Master { private String name; public ConcreteMaster(String name) { this.name = name; } public String getName() { return name; } } public interface Visitor { public abstract void visit(Master master); } public class ConcreteVisitor implements Visitor { public void visit(Master master) { //这里的visit方法仅仅是打印出被访问者的name,改变被访问者的行为的操作就是在这里实现的,不同的Visitor的visit方法不同导致 //被访问者的行为也不同 System.out.println("visit the master " + master.getName()); } }
public class Test { public static void main(String[] args) { Master master = new ConcreteMaster("Amy"); Visitor visitor = new ConcreteVisitor(); visitor.visit(master); } }
测试结果:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步