應用場景:
1、如果在一個系統裡面有許多類,它們之間的差別僅在于它們的行為,那麼使用政策模式可以動态地讓一個對象在許多行為中選擇一種行為。
2、一個系統需要動态地在幾種算法中選擇一種。
3、如果一個對象有很多的行為,如果不用恰當的模式,這些行為就隻好使用多重的條件選擇語句來實作。
實作步驟:
以人吃飯的方式不同來舉例。
1、定義一個接口,接口中定義行為方法;
2、定義多個需要實作該行為方法的實作類;
單身狗,隻能一個人吃飯
有對象的人,兩個人吃飯
3、定義容器類(Person),組合行為方法的實作類(EatStrategy),需要時調用實作類的方法即可。
張三現在20歲,職業程式員,平時工作太忙,來不及找對象,是以吃飯隻能采用單身狗方式:
10年過去了,張三當上了公司研發總監,陸續買房買車,找女友更是不在話下。現在張三吃飯變為兩個人吃了: