js设计模式(解释器)

js设计模式(解释器)

上几节我们主要介绍了结构设计模式,今天我们开始学习行为设计模式,主要有以下几种类别

  1. Chain of Responsibility
  2. Command
  3. Interpreter
  4. Iterator
  5. Mediator
  6. Memento
  7. Observer
  8. State
  9. Strategy
  10. Template
  11. Visitor

今天我们先学习解释器模式

不是所有解决方案都是相同的。在许多应用程序中,您可能需要添加额外的代码行来操作输入或输出以显示给用户。在这里,输出取决于应用程序。

在我们的玩具工厂示例中,所有星球大战品牌的玩具都需要以标语为前缀:“愿原力与你同在”。而所有品牌为Bob the Builder的玩具都需要以“你准备好了吗!”作为前缀。这种额外的自定义级别可以使用解释器模式来实现。

var Prefix = function (brandTag) {
    this.brandTag = brandTag;
}
Prefix.prototype = {
    interpret: function () {
        if (this.brandTag  == “Star Wars”) {
            returnMay the Force be with You”;
        }
        else if (this.brandTag  == “Bob the Builder”) {
            returnAre you Ready?”;        
        }
    }
}

function run() {
    var toys = [];
    toys.push(new Prefix(“Star Wars”));
    toys.push(new Prefix(“Bob the Builder”));
    for (var i = 0, len = toys.length; i < len; i++) {
        console.log(toys[i].interpret());
    }
}

解释器的主要作用是为对象添加额外的功能,并且能够根据业务需要而添加不同的功能,在上面的例子中,就是为不同品牌的玩具添加了不同的逻辑,而不同修改原始的对象。

版权声明:著作权归作者所有。

thumb_up 0 | star_outline 0 | textsms 0