1. 程式人生 > 實用技巧 >【leetcode】210. 課程表 II

【leetcode】210. 課程表 II

技術標籤:軟體工程設計模式

1、概念

官方解釋:“定義一系列的演算法,把每一個演算法封裝起來, 並且使它們可相互替換”。

實現效果:根據環境類的不同執行不同的實現策略,減小演算法多樣性對程式碼結構的衝擊。

目的:當客戶端傳入的物件不變,但是要執行不同的演算法邏輯,你需要寫大量的if-else來實現。
策略模式的出現就是為了解決這種情況。並且拓展起來也非常方便。

具體結構:
	環境類:可以理解為傳入的物件,用來操作策略的上下文物件。
	抽象策略類:定義策略的抽象方法。
	實現策略類:策略抽象方法的具體實現類,可以有很多種。

2、具體實現

略,百度有大把案例。

3、區別

我學習策略模式時,感覺和方法模板模式很相似,所以區分一下他們的不同點。

  • 策略模式:入參物件相同;大多對呼叫鏈路的整個演算法實現做修改。

  • 模板方法模式:入參物件不同;只對呼叫鏈路的部分做修改在子類實現。