《面向模式的软件体系结构1--模式系统》读书笔记(5)--- 管理
管理
?? 1)命令處理器(Command Processor)模式將一個服務請求與其執行分開。一個命令處理器組件管理作為獨立對象的請求,調度它們的執行,并且提供額外的服務。
?? 2)視圖處理程序(View Handler)模式幫助管理軟件系統中的視圖。視圖處理程序組件允許客戶機打開、處理和消除視圖,協調視圖之間的依賴性,并組織它們的更新。
?? 3)備忘錄(Memento)模式可以捕獲并具體化一個對象的內部狀態而無需破壞封裝,以便其狀態以后能夠恢復。
?
命令處理器模式
?? 模式描述的中心組件——命令處理器,維護了所有的命令對象。命令處理器安排命令的執行,可以存儲它們供以后撤銷之用,并且可能提供其他的服務。例如為了測試目的而記錄命令順序,每個命令對象將其任務的執行委托給應用程序功能核心內的供應者組件。
?
結構
?? 抽象命令(abstract command)組件定義了所有命令對象的接口。這個接口至少由執行一條命令的過程組成,由命令處理器實現的額外服務要求進一步適用于所有命令對象的接口過程。
?? 對于每個用戶函數,我們從抽象的命令中導出命令組件(command component),一個命令組件通過使用零個或多個供應者組件(supplier component)實現抽象命令的接口。在執行之前,命令保存了相關的供應者組件狀態,萬一撤銷可以恢復它。
??
?? 控制器(controller)代表了應用程序的接口。它接受請求,并創建相應命令對象。命令對象隨后被發送至命令處理器中執行。控制器維護了事件循環并將引入的事件映射到命令對象。
?? 命令處理器(command processor)管理命令對象,調度它們并且開始它們的執行。這是實現與命令執行相關的附加服務的關鍵組件。命令處理器保持了特殊命令的獨立性,因為它只使用了抽象的命令接口。命令處理器也同樣存儲已執行的命令以備后面的撤銷操作使用。
?? 供應者(supplier)組件提供了執行具體命令所需的絕大多數功能。相關聯的命令通常共享供應者組件。在要求一個撤銷機制時,供應者通常提供一種存儲和恢復其內部狀態的手段。
?
?
實現
?? 1)定義抽象命令接口。抽象命令類隱藏了所有特殊命令的細節,這個類常常指定執行命令所需的抽象方法。它同樣定義了由命令處理器提供的實現附加服務所需的方法。
?? 2)對于應用程序支持的每個請求類型,設計命令組件。將一個命令捆綁到它的供應者上有幾種選擇方法。供應者組件可以在命令中強制編碼,或者控制器可以給供應者提供命令構造函數作為一個參數。
?? 3)通過提供宏命令增加了靈活性,宏命令結合了幾個連續的命令。
?? 4)實現控制器組件。命令對象由控制器創建,因為控制器已經從供應者組件中分離出來,所以這個附加的對控制器和命令的分離是可選的。
?? 5)實現對命令處理器的附加服務的訪問,一個用戶可訪問的附加服務通常由一個特殊命令類實現。
?? 6)實現命令處理器組件。命令處理器從控制器中接收命令對象并對它們負責,對每個命令對象,命令處理器從調用do方法來開始執行。
?
優點
?? 1)激活請求方法的靈活性。用來請求一個功能不同的用戶界面元素可以產生相同類型的命令對象。這樣容易將用戶的輸入重新映射到應用功能,這有助于創建一個適應用戶偏好的應用程序界面。
?? 2)請求數量和功能的靈活性。控制器和命令處理器獨立于單個命令功能而執行,改變一個命令的實現或引入一個新的命令類都不會影響命令處理器或者應用程序中的其他不相關部分。
?? 3)編程與執行相關的服務。命令處理器容易增加與命令執行相關的服務,它可以將命令記錄或存儲到一個文件以備以后檢查或重放,可以編排命令并在稍后調度它們。
?? 4)應用層的可測試性。命令處理器對于應用程序測試來說是一個理想的入口點。
?? 5)并發性。命令處理器模式允許在分離的控制線程中執行命令。響應性得到改善是因為控制器不會等待到一個命令執行完成。然而,當應用程序的全局變量被幾個并行執行的命令訪問時,這就要求同步。
?
不足
?? 1)效率損失。對能將組件分離的所有模式而言,附加的間接方法耗費了存儲空間和時間。
?? 2)潛在過多的命令類。一個具有豐富功能的應用程序可得出許多命令類。我們可以采取很多方法處理這種情況的復雜性:
????? ·圍繞抽象將命令分組。
????? ·通過將供應者對象作為一個參數來傳遞,以統一非常簡單的命令類。
????? ·預先編程宏命令對象,它們依賴少數幾個低層命令的結合。
????? ·獲得命令參數的復雜性。有些命令對象在執行之前或在執行期間檢索來自用戶的附加參數,這種情況使事件處理機制變得復雜,事件處理機制需要將事件傳遞到不同的目的地。
轉載于:https://www.cnblogs.com/pennant/archive/2012/08/15/2639436.html
總結
以上是生活随笔為你收集整理的《面向模式的软件体系结构1--模式系统》读书笔记(5)--- 管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 双机概念
- 下一篇: 从零开始--系统深入学习android(