首页 > 代码库 > 访问者模式(visitorpattern)
访问者模式(visitorpattern)
/** * 访问者模式 * @author TMAC-J * 在客户端和元素之间添加一个访问者 * 当你需要添加一些和元素关系不大的需求时,可以直接放在访问者里面 * 或者是元素之间有一些公共的代码块,你可以把它放在访问者里面,就不用写重复代码了 * 适用于元素数据基本不变,操作不断变化的场景 * 可以不改变元素类,只改变访问者类,个人觉得这个访问者类相当于一个管理器 * 和迭代子模式的区别是迭代子模式主要是针对于一个聚合,其提供的最主要功能是遍历 * 访问者是针对某个元素,情况是元素结构不变,操作多变的情况 * 其实设计模式不用这么死板,只要符合开闭等这些设计模式原则就可以 */ public class VisitorPattern { interface Element{ void doSomething(); void accept(IVisitor visitor); } public class ConcreteElement implements Element{ @Override public void doSomething() { System.out.println("这是具体元素!"); } @Override public void accept(IVisitor visitor) { visitor.visit(this); } } interface IVisitor{ void visit(Element element); } public class ConcreteVisitor implements IVisitor{ @Override public void visit(Element element) { element.doSomething(); } } public void test(){ IVisitor visitor = new ConcreteVisitor(); visitor.visit(new ConcreteElement()); } }
访问者模式(visitorpattern)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。