一次策略設計模式的實際應用

2021-09-28 14:21:12 字數 1272 閱讀 8482

平時工作當中,總是聽到要學習設計模式,設計模式的優點很多,我們要掌握好設計模式,包括面試當中也經常會被問到設計模式這些東西。但是平時只顧著學了,很少在工作中實際用到,不是說工作中用不到設計模式,而是平時積累得太少了,碰到了相應的場景,我們自己壓根就沒有往這方面思考。這不,筆者在寫了成百上千次if…else以後,終於想起了在專案中使用設計模式了。

public

class

adserviceimpl

implements

adservice

else

if(type ==2)

else

if(type ==3)

// 如果有其他的廣告場景,就得在下面一行加乙個else if的判斷,然後再利用autowired注入乙個對應的service來處理。

return null;

}}

public

class

public

class

adserviceimpl

implements

adservice

baserewardservice rewardstrategy = rewardservicemap.

get(rewardtype.

strategyname()

);return rewardstrategy.

reward

(rewarddto);}

}

rewardtype是乙個列舉型別,在列舉型別中定義了乙個strategyname屬性,該屬性表示的是加獎勵的service在spring容器中的beanname,該列舉還提供了乙個find()方法,該方法是根據傳入的code值,找到對應的列舉型別,定義如下:

public

enum rewardtype

}return null;

}rewardtype

(int code, string strategyname, string desc)

private

int code;

private string strategyname;

private string desc;

public

intcode()

public string strategyname()

public string desc()

}

記一次策略模式的使用

每次說起設計模式腦子裡總是想起大學裡學的23中設計模式。23中設計模式,能記住的屈指可數,在工作中用到的更是少之又少。當然,設計模式聽著總是感覺很高大上,自己那點業務需求有點簡單的if else,三下五除二就打完收工了,如果絞盡腦汁弄了設計模式,量倍增,看不到到底好在 反而增加了工作量。這次就用乙個...

設計模式應用三 策略模式

商場打折 策略可以簡單分為 原價購買 滿減 返利三種策略 系統的操作都要有日誌記錄,通常會把日誌記錄在資料庫裡面,方便後續的管理,但是在記錄日誌到資料庫的時候,可能會發生錯誤,比如暫時連不上資料庫了,那就先記錄在檔案裡面。日誌寫到資料庫與檔案中是兩種演算法,但呼叫方不關心,只負責寫就是 根據狀態進行...

設計模式(一) 策略模式

設計模式 一 策略模式 本文描述的是策略模式 我們假設有如下場景 我們使用聊天工具聊天時,可以傳送點對點訊息 私聊 和點對多訊息 群聊 而傳送不同的訊息執行的操作是不一樣的,也就是說我們在不同的場景下 私聊或者群聊 傳送訊息時會呼叫不同的傳送方法,但是我們只有乙個訊息傳送器 可以理解為傳送訊息時的傳...