意图:将数据结构与数据操作分离
主要解决:稳定的数据结构和易变的操作耦合问题
如何解决:在被访问的类里加一个对外提供接待者的接口
优点:
1.符合单以职责原则
2.优秀的扩展性
3.灵活性
缺点:
1.具体元素对访问者公布细节,违反了迪米尔特原型
2.具体元素变化比较困
3.违反了依赖倒置原则,依赖具体类,没有依赖抽象类
参考:https://www.runoob.com/design-pattern/visitor-pattern.html