策略模式作為一種軟體設計模式,是指物件有某個行為,但是在不同的場景中,該行為有不同的實作演算法,該模式解決了在有多種演算法相似的情況下,使用「if...else」所帶來的複雜和難以維護。
介紹
#意圖:定義一系列的演算法,把它們一個個封裝起來, 並且使它們可相互替換。
主要解決:在有多種演算法相似的情況下,使用 if...else 所帶來的複雜和難以維護。
何時使用:一個系統有許多許多類,而區分它們的只是他們直接的行為。
如何解決:將這些演算法封裝成一個一個的類,任意地替換。
關鍵程式碼:實作同一個介面。
應用範例: 1、諸葛亮的錦囊妙計,每一個錦囊就是一個策略。 2.旅行的出遊方式,選擇騎腳踏車、坐汽車,每一種旅行方式都是一個策略。 3、JAVA AWT 中的 LayoutManager。
優點: 1、演算法可以自由切換。 2.避免使用多重條件判斷。 3.擴展性良好。
缺點: 1、策略類別會增加。 2、所有策略類別都需要對外暴露。
使用場景: 1、如果在一個系統裡面有許多類,它們之間的差異僅在於它們的行為,那麼使用策略模式可以動態地讓一個物件在許多行為中選擇一種行為。 2、一個系統需要動態地在幾種演算法中選擇一種。 3.如果一個物件有很多的行為,如果不用恰當的模式,這些行為就只好使用多重的條件選擇語句來實現。
注意事項:如果一個系統的策略多於四個,就需要考慮使用混合模式,解決策略類別膨脹的問題。
實作
我們將建立一個定義活動的 Strategy 介面和實作了 Strategy 介面的實體策略類別。 Context 是一個使用了某種策略的類別。
StrategyPatternDemo,我們的演示類別使用 Context 和策略物件來演示 Context 在它所配置或使用的策略改變時的行為變化。
推薦教學:《PHP》
以上是策略模式是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

Dreamweaver CS6
視覺化網頁開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)