設計模式之 策略模式


一、定義

策略模式(Strategy Pattern)

針對一組算法,將每一個算法封裝到具有共同接口的獨立類中,從而使得它們可以相互替換。策略模式使得算法可以在不影響到客戶端的情況下發生變化。

二、分析

  • 策略模式主要針對的是一組可以相互替換的算法,我們單獨把這些算法封裝起來,讓他們實現同一個接口,在使用策略時傳入實現的接口類,這樣我們刪除和添加策略時就不用修改到客戶端。

  • 在策略模式中,策略是由客戶端決定的,這要求這些可以替換的策略必須是公開的,客戶端也需要知道具體有哪些策略。

  • 策略模式和狀態模式原理一致,只是他們的注重點不同,狀態模式主要是切換狀態以達到執行不同的行為,而策略模式則是針對一組可以替換的算法。

  • 如果在一個類中,某個行為存在多種實現的方式,並且這些方式可以相互替換,這時我們就可以使用策略模式。

三、類圖

策略模式類圖

四、使用場景

  • 系統需要動態的在幾種算法中選擇一種;

  • 類中使用了復雜條件運算符以在同一算法的不同變體中切換;

  • 如果算法在上下文的邏輯中不是特別重要,使用該模式能將類的業務邏輯與其算法實現細節隔離開來。

五、代碼實現

我們在買房時需要在進行貸款,銀行一般有2種還款方式分別是 等額本息等額本金 ,我們可以根據實際需求選擇還款的方法。

下面我們使用策略模式來模擬這兩種還款方式。

源碼:gitee地址(點擊跳轉)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM