最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java設(shè)計模式的策略模式簡析

 更新時間:2023年12月04日 10:02:35   作者:制造bug的鍵盤鋼琴師  
這篇文章主要介紹了Java設(shè)計模式的策略模式簡析,策略模式中定義了一系列的算法族,算法族指的是類似于一系列的行為、策略,策略模式將一系列的行為封裝成類,既可以說是將每一種相類似的行為都封裝成一個類,也有可能存在特殊的不進行封裝的行為,需要的朋友可以參考下

策略模式

1.定義:

策略模式定義了算法族,并分別進行封裝,讓它們之間可以互相替換,此模式讓算法的變化獨立于使用算法的調(diào)用者。

簡單解釋一下:策略模式中定義了一系列的算法族,算法族指的是類似于一系列的行為、策略,策略模式將一系列的行為封裝成類,既可以說是將每一種相類似的行為都封裝成一個類(也有可能存在特殊的不進行封裝的行為。)但最終都需要能夠相互替換,也就是說各行為之間需要一定的共性,其需要實現(xiàn)共同的接口(或者說是有共同的方法)。還有需要注意的一個點,這些行為、算法的變化不能影響調(diào)用該行為的調(diào)用方,對于調(diào)用該使用行為的類來說是透明的。

2.主要解決(問題):

在有多種算法相似的情況下,使用if…else所帶來的復雜和難以維護,將其有共性的算法進行封裝,降低代碼復雜度的同時使代碼更易維護。

3.關(guān)鍵點:

實現(xiàn)同一個接口(既有同一個規(guī)范)

4.優(yōu)點:

  • 算法可以自由切換。
  • 避免使用多重條件判斷。
  • 擴展性良好

4.缺點:

  • 策略類相應增多。
  • 策略類都需對外暴露。

5.注意事項:

當一個系統(tǒng)的策略數(shù)量過多,多于四個則需要考慮使用混合模式,解決策略類膨脹的問題。

demo

共性接口:

在這里插入圖片描述

開啟命令行為:

在這里插入圖片描述

關(guān)閉命令行為:

在這里插入圖片描述

輸出其余全部命令行為:

在這里插入圖片描述

編寫SpringBeanFactory工廠類

用以統(tǒng)籌管理實體對象:

在這里插入圖片描述

策略模式執(zhí)行實例(策略主體)

在這里插入圖片描述

SystemCommdndEnum枚舉【主要部分】

在這里插入圖片描述

在這里插入圖片描述

到此這篇關(guān)于Java設(shè)計模式的策略模式簡析的文章就介紹到這了,更多相關(guān)Java策略模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis-Plus動態(tài)表名的實現(xiàn)示例

    Mybatis-Plus動態(tài)表名的實現(xiàn)示例

    面對復雜多變的業(yè)務(wù)需求,動態(tài)表名的處理變得愈發(fā)重要,本文主要介紹了Mybatis-Plus動態(tài)表名的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • MyBatisPlus深入探究映射匹配的兼容性

    MyBatisPlus深入探究映射匹配的兼容性

    在最近的工作中,碰到一個比較復雜的返回結(jié)果,發(fā)現(xiàn)簡單映射已經(jīng)解決不了這個問題了,只好去求助百度,學習mybatis映射匹配應該怎么寫,將學習筆記結(jié)合工作碰到的問題寫下本文,供自身查漏補缺,同時已被不時之需
    2022-08-08
  • SpringBoot統(tǒng)一功能處理的方式詳解

    SpringBoot統(tǒng)一功能處理的方式詳解

    這篇文章主要為大家詳細介紹了SpringBoot統(tǒng)一功能處理的方式,文中的示例代碼講解詳細,對我們學習或工作有一定借鑒價值,需要的可以參考一下
    2022-08-08
  • 一篇文章帶你入門java方法

    一篇文章帶你入門java方法

    這篇文章主要介紹了java基礎(chǔ)之方法詳解,文中有非常詳細的代碼示例,對正在學習java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-08-08
  • Java ConcurrentHashMap如何合理指定初始容量

    Java ConcurrentHashMap如何合理指定初始容量

    本文主要介紹了Java ConcurrentHashMap如何合理指定初始容量,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-10-10
  • Spring中IOC和AOP的深入講解

    Spring中IOC和AOP的深入講解

    這篇文章主要給大家介紹了關(guān)于Spring中IOC和AOP的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • java驗證碼生成具體代碼

    java驗證碼生成具體代碼

    這篇文章主要為大家分享了java驗證碼生成具體代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Java 添加、刪除、格式化Word中的圖片步驟詳解( 基于Spire.Cloud.SDK for Java )

    Java 添加、刪除、格式化Word中的圖片步驟詳解( 基于Spire.Cloud.SDK for Java )

    這篇文章主要介紹了Java 添加、刪除、格式化Word中的圖片( 基于Spire.Cloud.SDK for Java ),本文分步驟通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Spring事務(wù)框架之TransactionDefinition源碼解析

    Spring事務(wù)框架之TransactionDefinition源碼解析

    這篇文章主要為大家介紹了Spring事務(wù)框架之TransactionDefinition源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • mybatis-plus-boot-starter包與mybatis-plus-generator的沖突解決

    mybatis-plus-boot-starter包與mybatis-plus-generator的沖突解決

    本文主要介紹了mybatis-plus-boot-starter包與mybatis-plus-generator的沖突解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-10-10

最新評論

长岛县| 贵阳市| 卢湾区| 北碚区| 将乐县| 腾冲县| 水富县| 德惠市| 上饶县| 万盛区| 盐亭县| 西青区| 丁青县| 姜堰市| 炎陵县| 武隆县| 松阳县| 宁国市| 房山区| 高邮市| 龙游县| 民丰县| 江津市| 绥滨县| 江孜县| 宣城市| 雷波县| 招远市| 沧州市| 玛纳斯县| 庆元县| 淳化县| 盐城市| 泰安市| 菏泽市| 寻乌县| 乌兰浩特市| 上高县| 凌源市| 普格县| 黄骅市|