您好,登錄后才能下訂單哦!
什么是命令模式
所謂命令模式,就是將一個請求封裝為一個對象,從而讓用戶使用不同的請求把客戶端參數化;對請求排隊或者記錄請求日志,以及支持可撤銷的操作的設計模式。
命令模式的實現方式
劉備三顧茅廬請諸葛亮出山之后,曹操派夏侯惇攻打劉備。劉備讓諸葛亮指揮各位將軍,諸葛亮“恐關、張二人不肯聽吾號令”,劉備“便以劍印付孔明,孔明遂聚集眾將聽令。”
諸葛亮成了命令的發布者:
public class ZhugeLiang { |
各位將軍們成為了命令的接收者和執行者
public class General { |
在豫山埋伏的命令
public class YushanCommand extends Command { |
在安林埋伏的命令
public class AnlinCommand extends Command {
|
勾引夏侯惇等人進埋伏圈的命令
public class SeduceCommand extends Command {
|
讓具體的將軍們執行命令
ZhugeLiang zhugeLiang = new ZhugeLiang(); |
諸葛亮初出茅廬便大獲全勝,讀者們也學會了命令模式。
Android源碼中的命令模式
(1)命令模式不但讓發布者與接收者解耦,也使得整個過程變得可控。Handler、Message、AsyncTask的執行流程都是命令模式的體現。
Android開發中如何利用命令模式
命令模式有更弱的耦合性、更靈活的控制性以及更好的擴展性。因此適用于以下場景:
(1)在不同的時刻制定、排列和執行請求時。
(2)當系統可能崩潰而需要按照修改日志重做時。
(3)當需要支持取消操作或者事務操作的時候。
需要注意的幾個問題
命令模式讓開發者之間的協作和工作交接變得簡便,但調用邏輯卻變得異常復雜。同時帶來了大量衍生類,讓代碼過度膨脹。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。