策略模式 在會員系統中的應用

2021-10-20 01:13:21 字數 1354 閱讀 8761

策略模式,說白了,就是將一系列演算法封裝進策略類的子類裡,根據不同的需求,執行不同的演算法

舉個栗子;電商業務中,會員結算**時,需要根據會員等級,返給使用者不同的積分,或者滿多少打折,這個時候就可以使用策略模式來代替傳統的多層巢狀if

普通註冊使用者:不減

vip1:減2元

vip2:減4元

vip3:減6元

定義策略介面

public inte***ce strategy
vip0策略

@component(value = "strategyvipzero")

public class strategyvipzero implements strategy

}

vip1策略

@component(value = "strategyvipone")

public class strategyvipone implements strategy

}

vip2策略

@component(value = "strategyviptwo")

public class strategyviptwo implements strategy

}

vip3策略

@component(value = "strategyvipthree")

public class strategyvipthree implements strategy

}

定義策略工廠: strategyfactory

@component

/*** 定義乙個map,儲存等級和策略的關係

*/private mapstrategymap;

public strategyfactory()

public strategy getstrategy(integer level)

return ctx.getbean(s,strategy.class);

}@override

}}

簡單使用

strategy strategy = strategyfactory.getstrategy(member.getmemberlevel());

bigdecimal bigdecimal = strategy.paymoney(new bigdecimal(pay)).setscale(2, bigdecimal.round_half_up);

設計模式 工廠在收費系統中的應用

抽象工廠 abstract factory 提供乙個建立一系列相關或相互依賴物件的結構,而無需指定他們具體的類。抽象工廠uml圖 abstractproducta和abstractproductb是兩個抽象產品,它們可能是兩種不同的實現。在機房收費系統中可以理解為對兩個表的不同操作。而product...

策略模式的典型應用

做了乙個小東西,裡面有多個角色,每個角色都有特殊的選單項,現使用策略模式對其簡單實現。關於策略模式的介紹請參考其他書籍。下面是專案架構和實現 架構 實現 imenustrategy.cs using system using system.collections.generic using syst...

策略模式的典型應用

做了乙個小東西,裡面有多個角色,每個角色都有特殊的選單項,現使用策略模式對其簡單實現。關於策略模式的介紹請參考其他書籍。下面是專案架構和實現 架構 實現 imenustrategy.cs using system using system.collections.generic using syst...