天天看點

設計模式之政策模式

 王尼瑪自稱是一個上知天文下知地理的學霸,有天心血來潮報名參加了CCAV的《開心闖關》。到他上場了,主持人王二丫開始了第一題:吳敬梓是哪本名著的作者?王尼瑪脫口而出:儒林外史。OYEAH,學霸果然是學霸,答對。請聽第二題:最早的血壓計用于測量誰的血壓?馬,王尼瑪也順利答出。後面幾道題王尼瑪也都順利通過,主持人一看這勢頭分明是要拿走萬元大獎的節奏啊,最後一題了趕緊翻出極難的:請問世上最苦逼的職業是什麼?王尼瑪一聽即傻眼了,數以萬計的職業到底哪個才是呀?急的直冒汗。正當二丫得意的時候,王尼瑪決定求助親友,眼看到手的獎金怎麼能泡湯呢。随即撥通了摯友王尼美的電話,一聽這題王尼美直接飛出六個字:程式猿不解釋。最終王尼瑪用了王尼美的答案使得全部通過,抱得萬元大獎。王尼瑪的機智打動了在場的所有人,掌聲經久不息。

樓主自娛自樂編了這個段子,難道你沒發現這不就是政策模式的例子嗎?請呵呵~

 政策模式定義了一系列的算法,并将每一個算法封裝起來,而且使它們還可以互相替換。政策模式讓算法獨立于使用它的客戶而獨立變化。

設計模式之政策模式

 1、

多個類隻差別在表現行為不同,可以使用Strategy模式,在運作時動态選擇具體要執行的行為。

 2、

需要在不同情況下使用不同的政策(算法),或者政策還可能在未來用其它方式來實作。

 3、 對客戶隐藏具體政策(算法)的實作細節,彼此完全獨立。

那麼現在我們将上面的小段子用程式簡單的來表示一下

設計模式之政策模式

百度百科:政策模式

C#設計模式(李建忠)