JS设计模式:命令模式

前端之家收集整理的这篇文章主要介绍了JS设计模式:命令模式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
var viewCommand = (function() {
    var tpl = {
        product : [
            '
','{#text#}

','
' ].join(''),title : [ '
{#title#}','

{#tips#}

','
','
' ].join('') },html = '';
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);
}

})();

解决命令发起者,命令执行者间的耦合。(也涉及了单例模式 策略模式 职责链模式)

猜你在找的程序笔记相关文章