命令模式

1.命令模式

命令模式中的命令是指的一個執(zhí)行某些特定事情的指令,主要應用于向某些對象發(fā)送請求,但是不知道請求的接收者是誰,也不知道被請求的操作是什么,可以用一種松散耦合的方式來設計軟件,使發(fā)送者與接收者能消除彼此之間的耦合關系。
另外,命令模式還支持撤銷、排隊等操作。

2.撤銷命令

命令模式可以封裝運算塊,命令對象不僅可以用執(zhí)行方法,還可以添加撤銷方法。
這里可以利用策略模式建立的一個動畫庫,實現(xiàn)動畫的開啟和返回操作。

//將動畫對象封裝成命令對象,為了方便地添加undo的功能
    function AnimationCommand(animation){
        this.animation=animation;
        this.oldPos=null;
        this.oldStart=null;
    }

    AnimationCommand.prototype.execute=function(pos,duration){
        this.oldPos=this.animation.dom.getBoundingClientRect().left;
        this.oldStart=+new Date();
        this.animation.start('left',pos,duration,'easeIn');
    };

    AnimationCommand.prototype.undo=function(){
        var dur=+new Date()-this.oldStart;
        this.animation.start('left',this.oldPos,dur,'easeIn');
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容