感想
访问者模式:对于一组对象,在不改变数据结构的前提下,增加作用于这些数据元素新的功能。
访问者模式适用于数据结构相对稳定,它把数据结构和作用与其上的操作解耦,使得操作集合可以相对自由地演化。
访问者模式的优点:
- 复合单一职责原则。
- 扩展性良好。
- 有益于系统的管理和维护。
访问者模式的缺点:
- 增加新的元素类变得很困难。
- 破坏封装性。
a.创建一个访问者的接口,编写访问者需要做的动作,如统计补偿金:
1 | public interface Visitor { |
b.创建一个抽象对象并定义一个抽象的方法,传入的参数为上一接口对象:
1 | public abstract class Element { |
c.实现抽象对象:
1 | public class Employee extends Element { |
d.实现这个访问者接口的对象:
1 | public class CompensationVisitor implements Visitor { |
e.实现一个存储雇员的类:
1 | import java.util.HashMap; |
f.客户端使用:
1 | public class MainTest { |
*.将已经提前实现完成的接口内的方法的对象传入超类中的方法,并能将继承超类的实体对象强制转化为目标对象,从而将接口内的方法抽离出来。