策略模式-枚舉實現

策略模式的實現方法有很多,可以通過策略類if,else實現。下面是用枚舉類實現策略模式的方法。

定義一個枚舉類,枚舉類有抽象方法,每個枚舉都實現抽象方法。這個策略,實現方法是工具類的很實現,代碼簡單好理解

枚舉實現策略

public enum TestUtilEnum {AA("aa") {@Overridepublic String execute(Query query) {return AaUtils.test(query);}},BB("bb") {@Overridepublic String execute(Query query) {return BbUtils.test(query);}};private final String name;/*** 構造函數*/TestUtilEnum(String name) {this.name =name;}public String getName() {return name;}public abstract String execute(Query query);public static TestUtilEnum fromName(String name) {for (TestUtilEnum handler : values()) {if (handler.getName().equals(name)) {return handler;}}throw new IllegalArgumentException("Invalid name: " + name);}}

測試調用

? ?public static void main(String[] args) {
? ? ? ? TestUtilEnum utilEnum = TestUtilEnum.fromName("aa");
? ? ? ? Query query = new Query ()
? ? ? ? utilEnum.execute(query);
? ? }

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/81654.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/81654.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/81654.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大數據hadoop小文件處理方案

Hadoop處理小文件問題的解決方案可分為存儲優化、處理優化和架構優化三個維度,以下是綜合技術方案及實施要點: 一、存儲層優化方案 1.文件合并技術 離線合并:使用hadoop fs -getmerge命令將多個小文件合并為大文件并重新上傳; MapReduce合并:開發專用MR…

線程調度與單例模式:wait、notify與懶漢模式解析

一.wait 和 notify(等待 和 通知) 引入 wait notify 就是為了能夠從應用層面,干預到多個不同線程代碼的執行順序,可以讓后執行的線程主動放棄被調度的機會,等先執行的線程完成后通知放棄調度的線程重新執行。 自助取…

ros運行包,Ubuntu20.04成功運行LIO-SAM

zz:~/lio_sam_ws$ source devel/setup.bash zz:~/lio_sam_ws$ roslaunch lio_sam run.launch 創建包鏈接: 鏈接1:Ubuntu20.04成功運行LIO-SAM_ubuntu20.04運行liosam-CSDN博客 鏈接2:ubuntu 20.04 ROS 編譯和運行 lio-sam,并且導出PCD文件…

AI自動化工作流:開啟當下智能生產力的價值

舉手之言:AI自動化工作流創造了什么呢? AI自動化工作流 ,顧名思義,是將人工智能(AI)技術與自動化流程相結合,通過智能化的方式來完成復雜的任務和操作。簡單來說,它就是利用AI的強大…

【設計模式】- 行為型模式2

觀察者模式 定義了一對多的依賴關系,讓多個觀察者對象同時監聽某一個對象主題。這個主題對象在狀態變化時,會通知所有的觀察者對象,讓他們能夠自動更新自己。 【主要角色】 抽象主題角色:把所有觀察者對象保存在一個集合里&…

mapbox-gl強制請求需要accessToken的問題

vue引入"mapbox-gl": "^2.15.0", 1.13以后得版本,都強制需要驗證這個mapboxgl.accessToken。 解決辦法:實例化地圖的代碼中,加入這個: const originalFetch window.fetch; window.fetch function ({ url…

已知6、7、8月月平均氣溫和標準差,求夏季季平均溫度與標準差

由下面定理,得出平方和的公式:(即每天的溫度平方和) 這樣就可以推出季平均的算法: 舉例:在Excel用公式算,不要手算: 因此季平均:(B2*C2B3*C3B4*C4)/SUM(B2:B4) 季標準差…

手機內存不夠,哪些文件可以刪?

1??應用緩存文件 安卓:通過「文件管理器」→「Android」→「data」或「cache」文件夾(部分需權限),或直接在應用設置中清除緩存 iOS:無需手動清理,系統會自動管理,或在應用內設置中清除&…

可編輯98頁PPT | 某大型制造業數字化轉型戰略規劃項目方案

薦言摘要:某大型制造業數字化轉型戰略規劃項目方案聚焦企業全價值鏈升級,以“數據驅動業務重塑”為核心,打造行業標桿級數字化能力。項目將分三階段推進,首階段聚焦頂層設計,通過現狀診斷明確痛點:針對企業…

lovart design 設計類agent的系統提示詞解讀

文章目錄 lovart 設計agent介紹角色定義工作規范工具調用任務復雜度指南任務移交指南其他ref lovart 設計agent介紹 lovart作為設計agent,產品功能包括: 全鏈路設計能力:可以快速生成完整的品牌視覺方案,包括標志、配色、品牌規范…

使用 docker-volume-backup 備份 Docker 卷

docker-volume-backup 是一個用于備份 Docker 卷的工具,在 Windows 10 上使用它,你可以按照以下步驟操作: 1. 確保 Docker 環境已安裝并正常運行 在 Windows 10 上,你需要安裝 Docker Desktop for Windows。可以從 Docker 官方網…

用戶行為日志分析的常用架構

## 1. 經典Lambda架構 Lambda架構是一種流行的大數據處理架構,特別適合用戶行為日志分析場景。 ### 1.1 架構組成 Lambda架構包含三層: - **批處理層(Batch Layer)**: 存儲全量數據并進行離線批處理 - **實時處理層(Speed Layer)**: 處理最新數據&…

從API到UI:直播美顏SDK中的濾鏡與貼紙功能開發與落地方案詳解

時下,濾鏡和貼紙功能,已經成為主播們展現個性、增強互動的“必備神器”。那么,這些功能背后的技術實現到底有多復雜?如何從API到UI構建一個流暢、靈活的美顏SDK呢?本文將從底層原理到前端實現,全面解析這兩…

21.EC實戰 嵌入式控制器EC如何進入休眠模式實現低功耗

文章目錄 一、概述1. WUI0中斷向量表配置2. 中斷服務函數內容3. 深度睡眠檢測4. 深度睡眠功能函數4.1 關閉所有中斷4.2 外部中斷對應引腳功能配置4.3 設置喚醒功能和喚醒中斷4.4 進入深度睡眠狀態一、概述 EC作為筆記本電腦的嵌入式控制器,在筆記本電腦使用電池單獨工作時,關…

Java實現PDF加水印功能:技術解析與實踐指南

Java實現PDF加水印功能:技術解析與實踐指南 在當今數字化辦公環境中,PDF文件因其跨平臺兼容性和格式穩定性而被廣泛應用。然而,為了保護文檔的版權、標記文檔狀態(如“草稿”“機密”等)或增加文檔的可追溯性&#xf…

vue2、vue3項目打包生成txt文件-自動記錄打包日期:git版本、當前分支、提交人姓名、提交日期、提交描述等信息 和 前端項目的版本號json文件

vue2 打包生成text文件 和 前端項目的版本號json文件 項目打包生成txt文件-自動記錄git版本、當前分支、提交人姓名、提交日期、提交描述等信息生成版本號json文件-自動記錄當前版本號、打包時間等信息新建branch-version-webpack-plugin.js文件 // 同步子進程 const execSyn…

Filament引擎(一) ——渲染框架設計

filament是谷歌開源的一個基于物理渲染(PBR)的輕量級、高性能的實時渲染框架,其框架架構設計并不復雜,后端RHI的設計也比較簡單。重點其實在于項目中材質、光照模型背后的方程式和理論,以及對它們的實現。相關的信息,可以參考官方…

洛谷B3876—— [信息與未來 2015] 中間值

見:B3876 [信息與未來 2015] 中間值 - 洛谷 題目描述 給出一個正整數 n,生成長度為 n 的數列 a,其中 ai?i(1≤i≤n)。 若 n 為奇數,則輸出 a 的中間數(位于 a 正中位置的數);若 n 為偶數&am…

Java 后端基礎 Maven

Maven 1.什么是Maven 2.Maven的作用 Maven核心 Maven概述 IDEA集成Maven 1.創建Maven項目 點擊設置里的 Project Structure 將jdk和編譯語言進行設置 隨后點擊apply點擊ok 2.Maven坐標 3.導入Maven項目 將文件夾復制到當前項目的目錄下 在這個目錄下,在磁盤中…

qtcreater配置opencv

我配置opencv不管是按照網上的教程還是deep seek發現都有些問題,下面是我的配置方法以及實踐成功的心得 電腦環境 windows平臺qt6 下載 我這里直接提供官網下載地址:https://opencv.org/releases/ 我下載的是最新版,下載后是一個.exe文件…