属于行为型模式(共11种)

    目的:
    在结构不变的情况下 动态改变对于内部元素的动作
    最开始用在编写编译器(抽象语法树)
    image.png
    传统的 编程结构 耦合性强 可改写性差 添加新处理方法修改量大
    image.png

    访问者模式类图:
    image.png
    用途:
    主要访问结构固定的类 可以不改变内部代码 进行动态的改变动作

    一个内部组成属性固定的类(由哪些类组成具体的node),一个参数为访问者(具体访问者)的方法
    一个组成类(具体node)实现/继承的 接口/抽象类(node) (抽出访问者为参数的共同方法)
    各组成类 重写传入参数为访问者(具体的访问者)的方法
    在方法中 具体的访问者 在调用 自己访问具体组成类的方法
    来实现 在不改变固定结构类代码不变的情况下 其组成类属性动作的改变

    一个总访问者接口 抽象出 访问组成类的接口方法
    具体的访问者类 实现接口 完成各自具体访问组成类的方法 在各组成类中
    (各组成类 重写传入参数为访问者(具体的访问者)的方法 )具体的访问对象 会调用自己方法

    代码实现
    image.png
    image.png