設計模式筆記一(strategy pattern)

2021-07-03 01:53:13 字數 965 閱讀 6513

正式步入碼工界,遇到第乙個問題就是refractor老的project,讓支援新的功能和策略。

無路可退,便踏上了學習設計模式的征程~

路漫漫其修遠兮....

言歸正傳,第乙個學習的物件是strategy pattern,策略模式。

個人知識有限,於是乎,請教一下wikipedia,找到其定義如下:

策略模式作為軟體設計模式,指物件有某個行為,但在不同場景下,該行為有不同的實現演算法。

說起場景,行為,要想當年玩cs,被別人拿小刀爆頭的壯烈場景~ 

不過也有好處,剛好可以用來解釋策略模式~

玩過cs的人都知道,不管警匪都是拿著**砍對方或者自殘(比如可以用手雷)。在不同的場景下,我們會用小刀或者各種不同的槍。

用不同的**,攻擊方式也不一樣,比如拿小刀爆頭和那小手槍爆頭。

首先我們建立乙個iweapon inte***ce來表示各種不同攻擊力:

public inte***ce iweapon 

對於不同的**,i.e. 小刀,手槍,我們實現iweapon的方法~

public class knife : iweapon 

}public class gun : iweapon

}

不管警匪,都可以使用不同的**,所以建立乙個cs角色,他/她可以使用不同的**。

public class cscharactor 

public void attack()

}

這樣在不同的環境下,我們可以自由的切換不同的**來砍人了~

static void main(strings args)

ch.setweapon(wp);

ch.attack();

}}

設計模式筆記 策略模式(Strategy)

策略是為達到某一目的而採取的手段或方法,策略模式的本質是目標與手段的分離,手段不同而最終達成的目標一致。客戶只關心目標而不在意具體的實現方法,實現方法要根據具體的環境因素而變化。策略模式參與者 strategy 策略 定義所支援的演算法的公共介面。context使用這個介面來呼叫某個concrete...

Strategy 設計模式

strategy模式 來對輪胎的樣式進行不同的替換,可以替換成短輪胎痕跡的汽車輪胎,這樣在不更改car類的前題下進行了不同輪胎樣式的改變,輪胎和輪胎之間可以互相替換,這就是策略模式。public class car public void settyre inte ce ref luntai tyr...

設計模式 Strategy

根據不同國家的稅率進行不同演算法計算 enum taxbase class salesorder else if tax us tax else if tax de tax else if tax fr tax 考慮未來變化,當出現新的需求 新的國家增加 需要考慮實現enum增加新的稅法如法國,並在...