spring應用 整合策略模式

2021-10-23 13:25:16 字數 1533 閱讀 3492

1.概述

在實際開發中通常遇到根據傳入引數不同選擇不同的service執行相應的邏輯,例如:商場結賬有多種結算模式,會員以會員價結算,內部員工以內部員工價結算,普通客戶按原價結算,後端實現就會根據客戶身份不同選擇不同的結算方式,通常以if…else…方法處理,但如果客戶型別較多,計價模式過多那麼將會寫許多if…else分支,顯然**層面不友好,而且也不利於後期業務擴充套件和維護,因此我們可以選擇策略模式實現。

2.**繼承關係圖

我們定義了介面userdao,它有兩個實現分別為userdaoaimpluserdaobimpl,我們根據傳入型別不同進行選擇

3.定義userdao實現userdaoaimpluserdaobimpl

@service

public

class

userdaoaimpl

implements

userdao

}@service

public

class

userdaobimpl

implements

userdao

}

4.定義userenum定義關係(寫死beanname方式)
public

enum userenum

public string getname()

//根據型別獲取列舉

public

static userenum getbytype

(string type)}}

return null;

}}

5.定義userservice根據傳入型別選擇具體實現
@service

public

class

userservice

}

注意:通過private mapmapspring容器會將userdao實現放入該集合中,key對應username,value對應具體實現6.呼叫服務

public

class

maintest

}

結果輸出userdaobimpl中query列印輸出,同理傳入"a"則列印userdaoaimpl中列印1.此種方式較第一種方式靈活,但**量多一些,兩種方式均適用,大家可以根據自己需要選擇2.spring整合策略模式非常方便,同時也可加上模板模式,對於某些固定功能處理起來更加方便

策略模式及Spring整合策略模式

抽象策略類 inte ce sortservice 具體策略類 class insertionsortserviceimpl implements sortservice else arr j 1 tmp return arr 氣泡排序 class bubblesortserviceimpl imp...

Spring整合策略設計模式

簡單策略設計模式詳解 策略頂級介面 author zrh date 2020 12 23 12 00 策略實現的抽象方法 param t void insertorupdate t t 策略實現類,並自定義bean名 author zrh vesion 1.2.0 time 2020 12 23 1...

Spring資源訪問設計與策略模式應用

spring把所有記錄資訊的載體,例如各種型別的文字配置檔案,二進位制檔案,網路資源等都統一做了乙個高度的抽象,稱為資源 resources spring中最常見的就是xml配置檔案和properties配置檔案。spring為資源訪問提供了resource介面,該介面提供了強大的資源範問能力,例如...