日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

结合案例深入解析策略模式

發布時間:2025/6/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 结合案例深入解析策略模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、基本概念

策略模式是行為型設計模式。

其用意是針對一組算法,將每一個算法封裝到具有共同接口的獨立的類中,從而使得它們可以相互替換。

策略模式使得算法可以在不影響到客戶端的情況下發生變化。

二、結構

下面是基本結構:

?

?

三類角色:

  • 環境(Context)角色:持有一個Strategy的引用。
  • 抽象策略(Strategy)角色:這是一個抽象角色,通常由一個接口或抽象類實現。此角色給出所有的具體策略類所需的接口。
  • 具體策略(ConcreteStrategy)角色:包裝了相關的算法或行為。

三、案例

案例實現:

定義一族算法,可以實現對兩個數的操作,例如+、-、*、/等。

實現代碼整體框架圖:

?

?

具體代碼實現:

Context類:

/*** Context 是一個使用了某種策略的類。 實現了 Strategy 接口的實體策略類*/ public class Context {private Strategy strategy;public Context(Strategy strategy) {this.strategy = strategy;}public int executeStrategy(int num1, int num2){return strategy.doOperation(num1, num2);} } Strategy接口:/**策略的公共接口*/ public interface Strategy {int doOperation(int num1, int num2); }

?

三種對應的算法實現:

/** 算法1: 實現加法 */ public class OperationAdd implements Strategy {@Overridepublic int doOperation(int num1, int num2) {return num1 + num2;} } /** 算法2:實現減法 */ public class OperationSubstract implements Strategy{@Overridepublic int doOperation(int num1, int num2) {return num1 - num2;} } /** 算法3: 實現乘法 */ public class OperationMultiply implements Strategy{@Overridepublic int doOperation(int num1, int num2) {return num1 * num2;} }

?

測試類:

public class MyTest {public static void main(String[] args) {Context context = new Context(new OperationAdd());System.out.println("10 + 5 = " + context.executeStrategy(10, 5));context = new Context(new OperationSubstract());System.out.println("10 - 5 = " + context.executeStrategy(10, 5));context = new Context(new OperationMultiply());System.out.println("10 * 5 = " + context.executeStrategy(10, 5));} }

?

程序輸出:

10 + 5 = 15 10 - 5 = 5 10 * 5 = 50

?

四、總結

  • 策略模式的重心不是如何實現算法,而是如何組織、調用這些算法;
  • 策略模式一個很大的特點就是各個策略算法的平等性。對于一系列具體的策略算法,大家的地位是完全一樣的,正因為這個平等性,才能實現算法之間可以相互替換;
  • 使用策略模式可以避免使用多重條件(if-else)語句;
免費Java高級資料需要自己領取,涵蓋了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高并發分布式等教程,一共30G。
傳送門:

轉載于:https://www.cnblogs.com/yuxiang1/p/11016999.html

總結

以上是生活随笔為你收集整理的结合案例深入解析策略模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲免费婷婷 | 国产午夜三级 | 色丁香六月| 国产精品国产一区 | 猛1被调教成公厕尿便失禁网站 | 在线免费观看视频你懂的 | 老司机深夜免费福利 | 91久久精品日日躁夜夜躁国产 | 男人懂得网站 | 成人av男人的天堂 | 4444亚洲人成无码网在线观看 | 欧美成人国产精品一区二区 | 午夜福利电影一区二区 | 91精品久久久久久粉嫩 | 午夜影院在线免费观看 | 免费看的黄色录像 | 午夜精品国产 | 琪琪色在线观看 | 国产欧美精品一区二区三区app | 泰坦尼克号3小时49分的观看方法 | 亚洲少妇一区二区三区 | 免费中文字幕日韩 | 日韩精选| 字幕网在线观看 | 长篇h版少妇沉沦交换 | 精品一区二区欧美 | 国产一级18片视频 | 少妇裸体视频 | 亚洲不卡在线 | 中文日韩av| 葵司ssni-879在线播放 | 日本黄色片免费 | 亚洲综合插 | 色综合成人 | 超碰成人久久 | 成人久久久久久 | 91九色在线播放 | 黄色无遮挡网站 | 国产精品va| 极品91尤物被啪到呻吟喷水 | 婷婷在线播放 | 久草福利视频 | 天堂色网| 亚洲v欧美v | 亚洲国产日韩欧美一区二区三区 | 国产精品扒开腿做爽爽爽a片唱戏 | 日本69av | 日本不卡视频在线观看 | 波多野结衣网址 | 精品久久香蕉国产线看观看亚洲 | 男人的天堂视频在线观看 | 久久久久久久极品内射 | 久草久热 | 深夜福利1000 | 国产欧美二区 | 日韩乱码人妻无码系列中文字幕 | 樱花草av | xxx精品 | 老熟女一区二区三区 | 在线欧美一区二区 | 性高潮久久久久久久久久 | 日韩中文字幕国产 | 欧美视频免费看 | 国产成人精品网站 | 日韩成人av一区 | 人人爱人人澡 | 找av123导航| 欧美日韩在线免费观看 | 日本a在线免费观看 | 91麻豆成人精品国产免费网站 | 丁香花电影在线观看免费高清 | 免费黄色av网址 | 天堂av在线免费观看 | 福利视频免费看 | 伊人手机视频 | 欧美囗交做爰视频 | 亚洲综合色网站 | 丰满多毛的大隂户视频 | 中文字幕精品一区久久久久 | 欧洲一区二区在线 | 国产网站无遮挡 | 天天想你在线观看完整版电影免费 | 99精品久久99久久久久 | 波多野结衣一区二区三区中文字幕 | 亚洲福利视频一区二区 | 奇米久久久 | 日本做爰三级床戏 | 69福利网 | 日韩欧美a级片 | 青青青在线免费观看 | 日本高清一区二区视频 | 激情网站免费 | 成人自拍视频网 | 操网| 日韩福利网 | 狠狠操网站 | 日韩avav | 狠狠操天天干 | 久久99影院 |