經典的政策模式如下圖所示:

讓我解釋一下這幅圖的含義,icontext是上下文的接口類,istrategy是政策的接口,istrategy依賴于icontext,也就是icontext裡面存有一個istrategy的政策字段。
其實政策模式說白了,就像諸葛亮給劉備的錦囊妙計一樣,遇到一種具體的情況,采取一種相應的政策。也就像我們平時會觀察天氣,根據今天有沒有下雨,選擇要不要打傘,下雨的話,那麼打傘;不下雨就不打傘。
下面我們用代碼來示範一下經典的政策模式。我們将要做的是,從一個數組中提取一個值,這個值的提取要根據使用者的選擇,也就是我們要根據使用者的選擇提取對應的值。假設使用者有三種選擇,選最大值,最小值,選第一個值。
1、首先我們要實作公共接口
2、實作相應的政策類
3、最後,我們利用政策模式來切換政策
最後附上完整的單元測試類
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。
轉載:http://www.cnblogs.com/kissazi2/p/3285395.html