這次介紹一下策略模式(Strategy Pattern),相比之下是一種比較簡單的模式。它也叫政策模式(Policy Pattern)。 策略模式使用的就是面向對象的繼承和多態機制,其他的沒有什么玄機。策略模式適合使用在: 1. 多個類只有在算法或行為上稍有不同的場景。 2. 算法需要自由切換的場景。 3. 需要屏蔽算法規則的場景。 使用策略模式當然也有需要注意的地方,那么就是策略類不要太多,如果一個策略家族的具體策略數量超過4個,則需要考慮混合模式,解決策略類膨脹和對外暴露問題。在實際項目中,我們一般通過工廠方法模式來實現策略類的聲明。
下面我們就來具體講解一下策略模式。
策略模式定義:
Define a family of algorithms, encapsulate each one, and make them interchangeable.(定義一組算法,將每個算法都封裝起來,并且是它們之間可以互換。)
下面我把策略模式的類層次結構圖展示如下:

如圖所示,Strategy類層次為Context定義了一系列的可供重用的算法和行為,繼承有助于析取出這些算法中的公共功能。下面我用一個普通超市里收費的例子簡單模擬了這個模式。我把其中對應的類介紹一下:
Context類―――――――――――CashContext類
Strategy類―――――――――――
主站蜘蛛池模板:
宿迁市|
凤山市|
横峰县|
东辽县|
肇源县|
彭州市|
舞钢市|
自贡市|
扎赉特旗|
娄底市|
石河子市|
福鼎市|
深圳市|
元谋县|
湛江市|
明光市|
徐闻县|
阳曲县|
买车|
西乌|
武宣县|
依兰县|
同心县|
海林市|
江安县|
军事|
宝应县|
北流市|
桂阳县|
湟中县|
赤峰市|
定襄县|
青田县|
原阳县|
名山县|
溧水县|
延津县|
房产|
宁蒗|
句容市|
内丘县|