設計模式專欄 策略模式

2021-10-06 07:52:26 字數 878 閱讀 8632

策略模式(strategy),定義了一組演算法,將每個演算法都封裝起來,並且使它們之間可以互換

策略模式是一種定義一系列演算法的方法,從概念上來看,所有這些演算法完成的都是相同的工作,只是實現不同,它可以以相同的方式呼叫所有的演算法,減少了各種演算法類與使用演算法類之間的耦合。

1、策略模式就是用來封裝演算法的,但在實踐中,我們發現可以用它來封裝幾乎任何型別的規則,只要在分析過程中聽到需要在不同時間應用不同的業務規則,就可以考慮使用策略模式處理這種變化的可能性。

2、假如系統中有很多類,而他們的區別僅僅在於他們的行為不同。

3、乙個系統需要動態地在幾種演算法中選擇一種。

抽象策略

public abstract class abstractstrategy
具體策略

public class chinastrategy extends abstractstrategy 

}

具體策略

public class usastrategy extends abstractstrategy 

}

contextstrategy上下文

public class strategycontext 

public void sayhello()

}

測試**

@test

public void teststrategy()

設計模式專欄 狀態模式

狀態模式就是允許物件在內部狀態發生改變時改變它的行為,物件看起來好像修改了它的類。狀態模式主要解決的是當控制乙個物件狀態的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類中,可以把複雜的判斷邏輯簡化。狀態操作介面 public inte ce state具體狀態物件 publ...

設計模式專欄 單例模式

單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。在計算機系統中,還有 windows 的 站 作業系統中的檔案系統 多執行緒中的執行緒池 顯示卡的驅動程式物件 印表機的後台處理服務 應用程式的日誌物件 資料庫的連線池 的計數器 web 應用的配置物件 應用程式中的對話方塊 系...

設計模式 策略設計模式

策略設計模式其實就是多型的使用,父類引用指向子類物件。策略模式的最大特點是使得演算法可以在不影響客戶端的情況下發生變化,從而改變不同的功能。策略模式的缺點其實也很明顯,在於策略模式把每一種具體的策略都封裝成乙個實現類,如果策略有很多的話,很顯然是實現類就會導致過多,顯得臃腫。案列 author de...