深入淺出學習設計模式之策略模式《一》

2021-08-26 08:25:11 字數 1696 閱讀 5366

深入淺出學習設計模式之策略模式《一》

深入淺出練習設計模式之裝飾模式《二》

最近感覺自己上班上了很久的班,卻感覺迷茫的很,思來想去,想想還是需要靜下心來,回顧一下自己的知識,

今天就回顧一下自己剛開始學的設計模式,記錄一下,設計模式 ,以便自己鞏固複習

設計模式遵循的原則

單一原則

開閉原則

歷史代還

依賴倒置

介面隔離原則

迪公尺特法則

1.策略模式

策略模式用乙個簡單的例子--商場**

商場** 經常會有活動,會員返積分,滿300減100,無會員 正常收費,打8折等

如果硬編碼的話,一般的思維方式是目前有什麼需求就加什麼條件,這只僅僅滿足當下的業務,如果擴充套件的話,是非常困難的

而採用策略模式的話,就相對來說就用於擴充套件了

1.首先定義乙個抽象類用於接受金額的引數

public abstract class cashsuper
2.正常收費的子類

public class cashnomal extends cashsuper 

}

3.打折的子類

public class cashrebate extends cashsuper 

@override

public double acceptcash(double money)

}

4.滿***返***的子類

public class cashreturn extends cashsuper 

@override

public double acceptcash(double money)

return result;

}}

5.定義乙個上下文類用於對cashsuper的引用

public class cashcontext 

public void contextinte***ce(double money)

}

6.測試結果為

這樣就運用了乙個簡答的策略模式,

這裡如果策略和簡單工廠結合的話,就需要改造一下cashcontext

改造後的cashcontext

public class cashcontext2 	}	

public double getresult(double money)

}

測試結構

public class test 

}

需要不同的策略只需要傳入不同的type,對於客戶端來說,簡化了

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

一句話概括:策略模式封裝了變化

深入淺出設計模式 模板模式

設計模式是程式設計師必須掌握的技能,熟練應用各種設計模式,不僅可以提公升我們的編碼能力,也可以使得我們的編碼更美觀。在這裡我們來講解一下模板模式。模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式...

深入淺出設計模式 工廠模式

披薩店新推出了點單系統,披薩需要通過不同的製作,相同的烘焙,裁剪等工序才能完成。披薩的種類實在太多了,在構造披薩例項時,光是if else 語句就長的可怕,修改與維護更令人頭疼。披薩子類繼承實現相同的基類,通過基類呼叫不同的子類,使得 具有一定的彈性,將構造子類放入業務 導致了子類與業務 的耦合,令...

深入淺出設計模式 設計模式之路

2.2 根據模式的作用劃分 3.總結 博主經過6年的 洗禮,慢慢意識到 中使用設計模式的重要性。然而,在我遇到的程式設計師大軍中,我大概歸類了以下幾類人 因此,博主計畫做乙個設計模式的系列帖子,記錄學習筆記,力求深入淺出設計模式。目前有23種設計模式。設計模式有兩種分類方法,一種是根據模式的目的來劃...