js设计模式(解释器)

上几节我们主要介绍了结构设计模式,今天我们开始学习行为设计模式,主要有以下几种类别
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template
- Visitor
今天我们先学习解释器模式
不是所有解决方案都是相同的。在许多应用程序中,您可能需要添加额外的代码行来操作输入或输出以显示给用户。在这里,输出取决于应用程序。
在我们的玩具工厂示例中,所有星球大战品牌的玩具都需要以标语为前缀:“愿原力与你同在”。而所有品牌为Bob the Builder的玩具都需要以“你准备好了吗!”作为前缀。这种额外的自定义级别可以使用解释器模式来实现。
var Prefix = function (brandTag) {
this.brandTag = brandTag;
}
Prefix.prototype = {
interpret: function () {
if (this.brandTag == “Star Wars”) {
return “May the Force be with You”;
}
else if (this.brandTag == “Bob the Builder”) {
return “Are 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());
}
}
解释器的主要作用是为对象添加额外的功能,并且能够根据业务需要而添加不同的功能,在上面的例子中,就是为不同品牌的玩具添加了不同的逻辑,而不同修改原始的对象。