您好,登錄后才能下訂單哦!
這篇“web策略模式結構是怎樣的”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“web策略模式結構是怎樣的”文章吧。
意圖
為一系列算法定義共通的接口,使它們可以相互替換。
動機
假設我們有個數據處理軟件,當它取得數據之后需要進行某些處理。這些處理可以簡單,例如限幅,求絕對值等,也可能比較復雜,如移動平均,計算差分等。一般來講,如果將這些處理單獨考慮的時候難度不會太大。但是有一點比較麻煩的是,根據數據和需求的不同,可能需要不同形式的處理。更加麻煩的是,具體的輸入數據的類型,需求需要等到軟件執行時才可以確定,也就是說需要動態替換這些處理。
為了解決這個問題我們可以定義共通的接口來抽象這些處理。對于上面的例子來說,定義一個y=f(x)應該就可以滿足要求。對于任意一個輸出,只要產生適當的輸出即可。對于移動平均等處理來說,可能會稍微麻煩一些,但也無非就是內部再準備一個緩沖區以管理過去一段時間的數據就可以解決問題。
結構
當某些處理可以抽象出相同的接口,只是內部具體的行為有所不同時,可以使用策略模式從而實現動態變更處理內容的目的。
策略類Strategy定義用于共通的處理接口。Context使用這個接口來調用相應的處理。這里的處理可以是對數據的加工,也可以只是執行某個動作。
具象策略類ConcreteStrategy負責具體實現策略類定義的接口。只要保證接口的一致性,具象策略類可以自由地擴展新功能。為了達成目的,具象策略類經常需要保持某些必要的信息。這一點也是將策略封裝成類之后一個便利之處。
上下文類Context類首先需要管理一個策略類對象的參照。根據用戶的指定或者其他方式,這個參照可指向任意一個具體具象策略類ConcreteStrategy。但數據處理流程執行時,上下文類還負責為策略對象提供輸入數據和取出輸出數據。決定策略的上下文,管理和使用策略的上下文不一定是同一個對象。
以上就是關于“web策略模式結構是怎樣的”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。