java設計模式之策略模式總結
阿新 • • 發佈:2017-09-04
客戶端 出場 cnblogs ava java設計 bsp image 需要 com
策略模式的定義:(定義截自http://www.cnblogs.com/whgk/p/6087064.html)
1、策略模式定義了算法族,分別封裝起來,讓他們之間可以互相替換,此模式讓算法的變化獨立於使用算法的客戶
換句話講,也就是將那些使用的方法分別封裝成獨立的類,然後將這一類使用接口統一管理起來,讓需要使用這些方法的用戶能夠隨時調用它們。上面例子中的戰鬥行為就相當於定義中的算法一詞。只是換了個說法而已。
缺點:
1、客戶端必須知道所有的策略類,並自行決定使用哪一個策略類。這就意味著客戶端必須理解這些算法的區別,以便適時選擇恰當的算法類。換言之,策略模式只適用於客戶端知道算法或行為的情況。
2、由於策略模式把每個具體的策略實現都單獨封裝成為類,如果備選的策略很多的話,那麽這些類的數目就非常多了。
從代碼角度去認識策略模式:
(趙雲用三個妙計解決問題,這個場景中的要素有三個:三個妙計,一個錦囊,一個趙雲)
1.首先創建一個策略接口(包含一個每個錦囊都可以執行的算法)
2.然後寫三個實現類,因為有三個妙計
3.那麽計謀有了,需要一個錦囊來存放三個妙計
4.主人公趙雲出場,一次打開妙計
(自學所用,勿噴)
java設計模式之策略模式總結