看看用TypeScript怎樣實現(xiàn)常見的設(shè)計模式,順便復(fù)習(xí)一下。
學(xué)模式最重要的不是記UML,而是知道什么模式可以解決什么樣的問題,在做項目時碰到問題可以想到用哪個模式可以解決,UML忘了可以查,思想記住就好。
這里盡量用原創(chuàng)的,實際中能碰到的例子來說明模式的特點和用處。
策略模式 Strategy
特點:用組合的方式調(diào)用一些算法或邏輯,并且可以根據(jù)狀態(tài)不同而選用不同的算法或邏輯。
用處:對象需要運(yùn)行時切換算法或邏輯可以考慮使用策略模式。
注意:策略的生成方式。
下面用TypeScript簡單實現(xiàn)一個策略模式:
說起策略就想到策略類游戲,年齡大點的可能都玩過War3,人族對獸族時如果偵察到對方不著急升本,用常規(guī)萬金油打法,那人族就可以出狗男女來一波流。
如果偵察到獸族跳科技并擺下兩個獸欄,那對方可能是暴飛龍,人族就要家里補(bǔ)個塔防偷農(nóng)民,然后出點火槍或二本龍鷹。
class Orc{ private _shenKeJi = false; get shenKeJi(): boolean { // 這里簡單用升科技來判斷是用常規(guī)還是飛龍 return this._shenKeJi; } set shenKeJi(value: boolean){