再上一篇文章《設(shè)計模式之策略模式》中,我們通過模擬鴨子項目,了解了什么是策略模式,怎么使用策略模式。本文將通過鴨子項目的學(xué)習(xí),對策略模式進(jìn)行總結(jié)。
創(chuàng)新互聯(lián)公司是專業(yè)的龍亭網(wǎng)站建設(shè)公司,龍亭接單;提供成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行龍亭網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!策略模式:
分別封裝行為接口,實現(xiàn)算法族,超類(父類)里放行為接口對象,
在子類里具體設(shè)定行為對象。
原則就是:
分離變化部分,封裝接口,基于接口編程各種功能。
此模式讓行為算法的變化獨立于算法的使用者。
策略模式總結(jié):
1:策略模式三要素:
A:接口類。策略接口或是策略抽象類。
B:實現(xiàn)策略接口的具體策略類
C:context上下問。持有具體策略類的實例,并負(fù)責(zé)調(diào)用相關(guān)的算法。
來看看duck項目中三個對應(yīng)
A:對應(yīng)的就是FlyBehavior和QuackBehavior兩個抽象類
B:具體實現(xiàn)策略類就是QuackBehavior的兩個實現(xiàn)類及FlyBehavior接口的兩個實現(xiàn)類
C:上下文,是由具體策略類的實例。GreenHeadDuck和RedHeadQuck
2:策略模式注意點
2.1:要分析出項目中變化部分與不不變化的部分(如duck項目中的Fly及Quack就是變化的)
2.2:多用組合少用基礎(chǔ);
用行為類組合,而不是行為的繼承。更有彈性
3:策略模式優(yōu)缺點
策略模式優(yōu)點
可以自由切換算法
避免了多條件的判斷
擴(kuò)展性好可以定義新的算法提供給使用者
策略模式缺點
算法類數(shù)量增多,每個算法都是一個類
算法要對外安全暴露,因為使用者來決定是用哪個算法,必然要了解算法內(nèi)部做了什么。
本文出自凱哥Java(kaigejava).歡迎來聊
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。