var viewCommand = (function() {
var tpl = {
product : [
'','
{#text#}',''
].join(''),title : [
'{#title#}','{#tips#}
','','
var viewCommand = (function() {
var tpl = {
product : [
'','
{#text#}',''
].join(''),title : [
'{#title#}','{#tips#}
','','
function formatString(str,obj) {
return str.replace(/\{#(\w+)#\}/g,function(match,key) {
return obj[key];
});
}
var Action = {
create : function(data,view) {
if (data.length) {
for (var i = 0,len = data.length; i < len; i++) {
html += formatString(tpl[view],data[i]);
}
} else {
html += formatString(tpl[view],data);
}
},display : function(container,data,view) {
this.create(data,view);
document.getElementById(container).innerHTML = html;
html = '';
}
}
return function excute(msg) {
msg.param = Object.prototype.toString.call(msg.param) === "[objet Array]" ? msg.param : [msg.param];
Action[msg.command].apply(Action,msg.param);
}
})();
解决命令发起者,命令执行者间的耦合。(也涉及了单例模式 策略模式 职责链模式)