天天看點

政策模式

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

政策模式

讓我解釋一下這幅圖的含義,icontext是上下文的接口類,istrategy是政策的接口,istrategy依賴于icontext,也就是icontext裡面存有一個istrategy的政策字段。

其實政策模式說白了,就像諸葛亮給劉備的錦囊妙計一樣,遇到一種具體的情況,采取一種相應的政策。也就像我們平時會觀察天氣,根據今天有沒有下雨,選擇要不要打傘,下雨的話,那麼打傘;不下雨就不打傘。

下面我們用代碼來示範一下經典的政策模式。我們将要做的是,從一個數組中提取一個值,這個值的提取要根據使用者的選擇,也就是我們要根據使用者的選擇提取對應的值。假設使用者有三種選擇,選最大值,最小值,選第一個值。

1、首先我們要實作公共接口

政策模式
政策模式

2、實作相應的政策類

政策模式
政策模式

3、最後,我們利用政策模式來切換政策

政策模式
政策模式

最後附上完整的單元測試類

政策模式
政策模式
政策模式

本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

轉載:http://www.cnblogs.com/kissazi2/p/3285395.html

繼續閱讀