js-物件導向-設計模式-命令模式

敢問發表於2020-12-06

命令模式的本質就是對命令進行封裝,將發出命令的責任和執行命令的責任區分開。

每一個命令都是一個操作,請求的一方發出請求操作,要求執行一個命令,接受的一方,收到請求,執行相應的操作

<script>
    var btn = document.getElementById("btn");
    //執行的事件物件
    var add = {
        execute : function(){
            console.log("增加了")
        }
    }
    var del = {
        execute : function(){
            console.log("減少了")
        }
    }
    //請求操作
    function setCommand(btn,command){
        btn.onclick = function(){
            command.execute()
        }
    }
    var random = parseInt(Math.random() * 10)
    if(random%2 == 0){
        setCommand(btn,add)
    }else{
        setCommand(btn,del)
    }
</script>

上面的程式碼將請求和執行分開操作

如果想讓btn按鈕單擊進行刪除,如果沒有使用命令模式,我們可能需要再次設定一個點選事件,但是我們可以使用命令模式進行區分
 

相關文章