Javascript乱弹设计模式系列(5) - 命令模式(Command)
2010-09-14 13:38:52 来源:WEB开发网Menu继承于MenuComponent接口(var MenuComponent = new Interface("MenuComponent", [["getElement"]]);),并且在上一篇组合模式讲过,它作为Composite复合元素。
MenuItem的实现如下:
functionMenuItem(text,title,href,command){
this.text=text;
this.title=title;
this.href=href;
this.command=command;
Interface.registerImplements(this,MenuComponent);
}
MenuItem.prototype={
getElement:function(){
varliElement=document.createElement("li");
liElement.className="Menu-Leaf";
liElement.title=this.title;
varanchor=document.createElement("a");
anchor.href=this.href;
liElement.appendChild(anchor);
anchor.innerHTML=this.text;
varcommand=this.command;
addEvent(anchor,"click",function(){
command.execute();
});
returnliElement;
}
}
其中参数command是作为传递进来的“命令对象”,比如前面的onBoldCommand的“加粗”命令对象,并且通过方法getElement()实现菜单按钮的点击触发达到命令对象的触发请求,而MenuItem不需要知道命令对象的具体实现;
addEvent(anchor, "click", function(){
command.execute();
});
通过这句代码来添加点击事件从而执行命令对象的实现;
Tags:Javascript 乱弹 设计模式
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接