作用:
将操作方法封装在一个访问者对象中,而不是封装在每个被访问对象当中。
访问者对象可以通过调用被访问者的接口,用来操作被访问者。
示例:
class App{
accept(user){
console.log(user,'使用者')
console.log(this,'工具')
user.use(this)
}
}
class User{
use(app){
}
}
class Weixin extends App{
}
class Wjt extends User{
}
const weixin = new Weixin()
const wjt = new Wjt()
weixin.accept(wjt)