JavaScript设计模式样例二十二 —— 访问者模式

访问者模式(Visitor Pattern)

定义:使用一个访问者类,改变元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。
目的:将数据结构与数据操作分离。
场景:您在朋友家做客,您是访问者,朋友接受您的访问,您通过朋友的描述,然后对朋友的描述做出一个判断,这就是访问者模式。
// 元素类
class Elements {
    constructor () {
        this.action = () => {
            console.log('hi~')
        }
        this.accept = (visitor) => {
            visitor.visit(this)
        }
    }
}

// 访问者
class Visitor {
    constructor () {
        this.visit = (elements) => {
            elements.action()
        }
    }
}


const ele = new Elements()
const visi = new Visitor()
ele.accept(visi)

Git地址:https://github.com/skillnull/Design-Mode-Example

posted @ 2020-04-29 16:56  SKILL·NULL  阅读(227)  评论(0编辑  收藏  举报