标签:uml类图 span 程序 main 自身 简介 print stat 依赖
访问者模式(Visitor),我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。
根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作
核心:
优点:
缺点:
使用场景:
注意事项:1、访问者可以对功能进行统一,可以做报表、UI、拦截器与过滤器
public interface ComputerPart { public void accept(ComputerPartVisitor cpv); }
public class CPU implements ComputerPart{ @Override public void accept(ComputerPartVisitor cpv) { cpv.visitCPU(this); } } public class Keboard implements ComputerPart{ @Override public void accept(ComputerPartVisitor cpv) { cpv.visitKeboard(this); } }
public interface ComputerPartVisitor { void visitCPU(ComputerPart cp); void visitKeboard(ComputerPart cp); }
public class PersonalVisitor implements ComputerPartVisitor{ private double price; @Override public void visitCPU(ComputerPart cp) { price += 1000; } @Override public void visitKeboard(ComputerPart cp) { price += 100; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } }
public class VisitorDemo { public static void main(String[] args) { PersonalVisitor pv = new PersonalVisitor(); ComputerPart cp = new CPU(); ComputerPart ke = new Keboard(); cp.accept(pv); ke.accept(pv); System.out.println(pv.getPrice()); } }
标签:uml类图 span 程序 main 自身 简介 print stat 依赖
原文地址:https://www.cnblogs.com/vincentYw/p/12677073.html