什麼是策略模式具體的介紹
策略模式讓演算法獨立於使用它的客戶而獨立變化。那麼你對策略模式瞭解多少呢?以下是由小編整理關於什麼是策略模式的內容,希望大家喜歡!
什麼是策略模式
策略模式定義了一系列的演算法,並將每一個演算法封裝起來,而且使它們還可以相互替換。策略模式讓演算法獨立於使用它的客戶而獨立變化。
策略模式的概念
***原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.***
Context***應用場景***:
1、需要使用ConcreteStrategy提供的演算法。
2、 內部維護一個Strategy的例項。
3、 負責動態設定執行時Strategy具體的實現演算法。
4、負責跟Strategy之間的互動和資料傳遞。
Strategy***抽象策略類***:
1、 定義了一個公共介面,各種不同的演算法以不同的方式實現這個介面,Context使用這個介面呼叫不同的演算法,一般使用介面或抽象類實現。
ConcreteStrategy***具體策略類***:
2、 實現了Strategy定義的介面,提供具體的演算法實現。
策略模式應用場景
應用場景:
1、 多個類只區別在表現行為不同,可以使用Strategy模式,在執行時動態選擇具體要執行的行為。
2、 需要在不同情況下使用不同的策略***演算法***,或者策略還可能在未來用其它方式來實現。
3、 對客戶隱藏具體策略***演算法***的實現細節,彼此完全獨立。
策略模式優缺點
優點:
1、 策略模式提供了管理相關的演算法族的辦法。策略類的等級結構定義了一個演算法或行為族。恰當使用繼承可以把公共的程式碼轉移到父類裡面,從而避免重複的程式碼。
2、 策略模式提供了可以替換繼承關係的辦法。繼承可以處理多種演算法或行為。如果不是用策略模式,那麼使用演算法或行為的環境類就可能會有一些子類,每一個子類提供一個不同的演算法或行為。但是,這樣一來演算法或行為的使用者就和演算法或行為本身混在一起。決定使用哪一種演算法或採取哪一種行為的邏輯就和演算法或行為的邏輯混合在一起,從而不可能再獨立演化。繼承使得動態改變演算法或行為變得不可能。
3、 使用策略模式可以避免使用多重條件轉移語句。多重轉移語句不易維護,它把採取哪一種演算法或採取哪一種行為的邏輯與演算法或行為的邏輯混合在一起,統統列在一個多重轉移語句裡面,比使用繼承的辦法還要原始和落後。
缺點:
1、客戶端必須知道所有的策略類,並自行決定使用哪一個策略類。這就意味著客戶端必須理解這些演算法的區別,以便適時選擇恰當的演算法類。換言之,策略模式只適用於客戶端知道所有的演算法或行為的情況。
2、 策略模式造成很多的策略類,每個具體策略類都會產生一個新類。有時候可以通過把依賴於環境的狀態儲存到客戶端裡面,而將策略類設計成可共享的,這樣策略類例項可以被不同客戶端使用。換言之,可以使用享元模式來減少物件的數量。
策略模式是什麼“的人還:
- 什麼是策略模式具體的介紹
- 如何關筆記本觸控板
- 安全生產標語橫幅精選
- 美就在身邊中考優秀作文
- 部隊工作能力自我評價_部隊個人工作總結鑑定
- 二手房買賣交易合同範文
- 日本童話故事
- 六年級下冊期末語文試卷答案
- 右眼皮浮腫是什麼原因
- 世界上最大的樹排行
- 福藝吉他入門課程
- 人教版五年級下冊語文第三單元作文開學典禮發言稿
- 卡通汽車的簡筆畫圖片
- 有內涵的搞笑說說
- 曲靖市科目一預約教程
- 鹽酸氨溴索口服溶液的不良反應
- 女人冬天如何保養手女人冬天保養手的方法
- 描寫家鄉表達思鄉之情的文章
- 屬土的人適合戴什麼
- 狐臭的治療方法及飲食方式
- 康熙字典五行屬金的字
- 康熙字典五行屬木的字
- 康熙字典五行屬水的字
- 康熙字典五行屬火的字
- 康熙字典五行屬土的字