91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

“Head First 設計模式“ :命令模式

發布時間:2020-07-21 16:08:04 來源:網絡 閱讀:539 作者:u2r2otkit 欄目:軟件技術

命令模式


命令模式定義:將“請求”封裝成對象,以便使用不同的請求、隊列或者日志來參數化其他對象。命令模式也支持可撤銷的操作。
命令模式,封裝方法調用,命令模式可將“動作的請求者”從“動作的執行者”對象中解耦。類圖,如下:

“Head First 設計模式“ :命令模式


生活中例子:餐廳點菜(顧客,服務員,廚師關系,顧客訂單告訴服務員就是,不用直接廚師打交道,廚師收到服務員的發來的訂單后開始做好大餐)。


命令模式的優點
● 在命令模式中, 請求者不直接與接收者交互, 即請求者不包含接收者的引用, 因此徹底消除了彼此之間的耦合.
● 命令模式滿足"開-閉"原則. 如果增加新的具體命令和該命令的接收者, 不必修改調用者的代碼, 調用者就可以使用新的命令對象; 反之, 如果增加新的調用者, 不必修改現有的具體命令和接收者, 新增加的調用者就可以使用自己已有的具體命令
● 由于請求者被封裝到了具體命令中, 那么就可以將具體命令保存到持久化的媒介中, 在需要的時候, 重新執行這個具體命令. 因此使用命令模式可以記錄日志.
● 使用命令模式可以對請求者的"請求"進行排隊. 每個請求都各自對應一個具體命令,因此可以按照一定的順序執行這些命令.


命令模式的使用場景
● 命令模式將發出請求的對象和執行請求的對象進行解耦
● 用于隊列請求,命令對象和一般對象一樣可以被傳來傳去,只要實現統一的接口方法,可以被任意調用
● 用于日志請求,將所有動作記錄在日志中,以便系統死機后能夠重新調用來恢復


案例1:實現一個家庭自動化遙控器,能遙控燈,空調,,,等設備的開/關。(硬件api類是廠家提供),類圖如下:
“Head First 設計模式“ :命令模式


更多需求思考?
● 如果需要撤銷命令,怎么修改呢?
● 如果需要組合命令,比如(先打開燈,然后打開電視,然后打開熱水器,打開影響),這么實現呢?
● 如命令需要跨jvm,跨機器執行,怎么實現呢?
● 如果需要宕機后恢復數據,怎么實現呢?

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临桂县| 扶绥县| 榆树市| 伊宁县| 张家港市| 临颍县| 崇文区| 将乐县| 宿松县| 临漳县| 剑川县| 陆良县| 若羌县| 郴州市| 诏安县| 鱼台县| 博白县| 调兵山市| 行唐县| 永昌县| 建始县| 克拉玛依市| 曲水县| 广平县| 图们市| 柳江县| 同心县| 米脂县| 巴彦淖尔市| 长沙市| 武隆县| 九寨沟县| 顺平县| 七台河市| 合肥市| 乌审旗| 吉林省| 城口县| 保康县| 溧阳市| 凤庆县|