访问者模式(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