中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

模板下載免費網(wǎng)站百度瀏覽器廣告怎么投放

模板下載免費網(wǎng)站,百度瀏覽器廣告怎么投放,阿里云做網(wǎng)站,網(wǎng)站建設(shè)博敏策略模式是什么 策略模式(Strategy):針對一組算法,將每一個算法封裝起來,從而使得它們可以相互替換。 比如我們一個軟件的會員等級,每一個等級都會有對應(yīng)的一些等級權(quán)益,那么每一個等級權(quán)益就…

策略模式是什么

策略模式(Strategy):針對一組算法,將每一個算法封裝起來,從而使得它們可以相互替換。

比如我們一個軟件的會員等級,每一個等級都會有對應(yīng)的一些等級權(quán)益,那么每一個等級權(quán)益就對應(yīng)一個策略

結(jié)構(gòu)

策略模式的通用類圖如下:
在這里插入圖片描述
策略模式主要由這三個角色組成,環(huán)境角色(Context)、抽象策略角色(Strategy)和具體策略角色(ConcreteStrategy)

1.上下文角色(Context):持有所有策略類的對象,可以根據(jù)策略提供相應(yīng)的算法給客戶端使用。
2.抽象策略角色(Strategy):這是一個抽象角色,通常由一個接口或抽象類實現(xiàn)。此角色提供具體策略類所需的接口。
3.具體策略角色(ConcreteStrategy):繼承或?qū)崿F(xiàn)了抽象策略,封裝了相應(yīng)的算法或行為。

策略模式的優(yōu)缺點

優(yōu)點
(1)算法可以自由切換
(2)避免使用多重條件判斷
(3)擴展性良好,增加一個策略只需實現(xiàn)接口即可

缺點
(1)策略類數(shù)量會增多,每個策略都是一個類,復(fù)用性很小
(2)所有的策略類都需要對外暴露

使用場景

1、業(yè)務(wù)代碼需要根據(jù)場景不同,切換不同的實現(xiàn)邏輯
2、代碼中存在大量 if else 邏輯判斷

實例

下面使用策略模式實現(xiàn)會員不同等級的權(quán)益領(lǐng)取

抽象策略角色:

/*** 會員抽象策略*/
public interface MemberStrategy {/*** 領(lǐng)取會員福利*/void getWeal();}

具體策略角色:

/*** 等級1的會員福利*/
@Component
public class LV1MemberWeal implements MemberStrategy {@Overridepublic void getWeal() {System.out.println("5元優(yōu)惠券");}}/*** 等級2會員福利*/
@Component
public class LV2MemberWeal implements MemberStrategy{@Overridepublic void getWeal() {System.out.println("10元優(yōu)惠券");}}

上下文角色:

我們可以使用枚舉加bean工廠來定義一個上下文角色,避免上下文角色的if-else

策略枚舉類

策略枚舉類用于獲取bean容器中的策略類class

/*** 策略枚舉*/
public enum MemberEnum {LV1(LV1MemberWeal.class),LV2(LV2MemberWeal.class);;private Class clazz;MemberEnum(Class clazz) {this.clazz = clazz;}public static Class getStrategyClass(String name){return MemberEnum.valueOf(name).clazz;}}

使用ApplicationContext可以獲取bean工廠中的實例,下面是對應(yīng)工具類

@Component
public class ApplicationContextUtil implements ApplicationContextAware {private static ApplicationContext applicationContext;/*** 將ApplicationContext注入* @param applicationContext* @throws BeansException*/@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext = applicationContext;}public static ApplicationContext getApplicationContext(){return applicationContext;}/*** 根據(jù)類型獲取bean* @param clazz* @param <T>* @return*/public static <T> T getBean(Class clazz){return (T) getApplicationContext().getBean(clazz);}/*** 根據(jù)名稱獲取bean* @param name* @param <T>* @return*/public static  <T> T getBean(String name){return (T) getApplicationContext().getBean(name);}}

上下文角色類

/*** 會員上下文角色*/
@Component
public class MemberStrategyContext {/*** 根據(jù)入?yún)㈩愋瞳@取對應(yīng)的策略類* @param type* @return*/public MemberStrategy getMemberStrategy(String type){MemberStrategy memberStrategy = ApplicationContextUtil.getBean(MemberEnum.getStrategyClass(type));return memberStrategy;}}

測試類

RunWith(SpringRunner.class) //作用:讓當(dāng)前類在容器環(huán)境下進(jìn)行測試
@SpringBootTest(classes = DemoApplication.class)
public class StrategyTest {@Autowiredprivate MemberStrategyContext memberStrategyContext;@Testpublic void testStrategy(){//根據(jù)入?yún)@取對應(yīng)策略類MemberStrategy memberStrategy = memberStrategyContext.getMemberStrategy("LV2");//執(zhí)行策略類的算法memberStrategy.getWeal();}}
http://www.risenshineclean.com/news/9419.html

相關(guān)文章:

  • 網(wǎng)站如何做監(jiān)測鏈接seo怎么推廣
  • 河南省建設(shè)監(jiān)理協(xié)會官方網(wǎng)站seo網(wǎng)站診斷價格
  • 國外h5分享網(wǎng)站2023年7 8月十大新聞
  • wordpress做淘寶客淘寶關(guān)鍵詞怎么優(yōu)化
  • 建設(shè)摩托車官網(wǎng)客服電話號網(wǎng)站優(yōu)化排名推薦
  • 平臺網(wǎng)站建設(shè)制作seo技術(shù)論壇
  • 網(wǎng)站建設(shè)管理及維護百度中心人工電話號碼
  • 電子產(chǎn)品網(wǎng)站建設(shè)策劃方案百度app安裝下載
  • 網(wǎng)站建設(shè)html5作品sem搜索引擎營銷
  • 附近裝修公司超級優(yōu)化大師
  • 機關(guān)門戶網(wǎng)站建設(shè)要求免費營銷軟件網(wǎng)站
  • 淘寶網(wǎng)站制作ue5培訓(xùn)機構(gòu)哪家強
  • 網(wǎng)站是用什么做的嗎百度一下就知道手機版
  • 做神馬網(wǎng)站優(yōu)化排名西安網(wǎng)絡(luò)推廣seo0515
  • wordpress添加形式鄭州seo線上推廣技術(shù)
  • 有關(guān)于網(wǎng)站開發(fā)的參考文獻(xiàn)免費個人網(wǎng)站怎么建立
  • 有沒有兼職做設(shè)計的網(wǎng)站抖音關(guān)鍵詞推廣
  • 自己可做以做網(wǎng)站嗎事件營銷的概念
  • 網(wǎng)站設(shè)計 做鼠標(biāo)效果優(yōu)化公司
  • 9e做網(wǎng)站推廣優(yōu)化排名
  • 高端手機網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷的五個發(fā)展階段
  • 做視頻賺錢的國外網(wǎng)站各大網(wǎng)站提交入口網(wǎng)址
  • 上海優(yōu)化排名藍(lán)天seo谷歌優(yōu)化排名怎么做
  • 建設(shè)網(wǎng)站考慮因素寧波seo網(wǎng)絡(luò)推廣定制多少錢
  • 邯鄲市住房和城鄉(xiāng)建設(shè)網(wǎng)站百度拍照搜題
  • 新浪云服務(wù)器做網(wǎng)站瀏覽器廣告投放
  • 做網(wǎng)站_你的出路在哪里創(chuàng)建自己的網(wǎng)站
  • 中國產(chǎn)品網(wǎng)注冊網(wǎng)站站長seo推廣
  • jsp網(wǎng)站空間網(wǎng)絡(luò)銷售渠道有哪些
  • 做網(wǎng)站如何排版曹操seo博客