如何使用javascript中的访问者模式-创新互联
这篇文章主要讲解了如何使用javascript中的访问者模式,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

介绍:访问者模式比较复杂,它包含访问者和被访问元素两个主要组成部分,这些被访问的元素通常具有不同的类型,且不同的访问者可以对他们进行不同的访问操作。访问者模式的主要目的是将数据结构与数据操作相分离。
定义:提供一个作用于某对象结构中的个元素的操作表示,它使得可以再不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式是一种对象行为型模式
场景:使用PC结构demo来解释下访问者模式
示例:
var Keyboard = function(){
this.accept = function(computerPartVisitor){
computerPartVisitor.visit(this);
}
}
var Monitor = function(){
this.accept = function(computerPartVisitor){
computerPartVisitor.visit(this);
}
}
var Mouse = function(){
this.accept = function(computerPartVisitor){
computerPartVisitor.visit(this);
}
}
var Computer = function(){
var parts = [new Keyboard(), new Monitor(), new Mouse()];
this.accept = function(computerPartVisitor){
computerPartVisitor.visit(this);
_acceptAll(computerPartVisitor);
}
var _acceptAll = function(computerPartVisitor){
parts.map(function(item){
item.accept(computerPartVisitor)
});
}
}
var ComputerPartDisplayVisitor = function(){
this.visit = function(item){
if(item.constructor == Keyboard){
console.log("Displaying Keyboard.");
}else if(item.constructor == Monitor){
console.log("Displaying Monitor.");
}else if(item.constructor == Mouse){
console.log("Displaying Mouse.");
}else if(item.constructor == Computer){
console.log("Displaying Computer.");
}else{
console.log("Error");
}
}
}
var computer = new Computer();
computer.accept(new ComputerPartDisplayVisitor());
// Displaying Computer.
// Displaying Keyboard.
// Displaying Monitor.
// Displaying Mouse. 当前题目:如何使用javascript中的访问者模式-创新互联
文章起源:http://www.jxjierui.cn/article/dhjsoj.html


咨询
建站咨询
