為了消除if-else
最近想把訊息服務的幾種下發方式通過策略模式整理一下,因為用的spring,直接上**
public
inte***ce
imessageservice
@component
public
class
iemailserviceimpl
implements
imessageservice
@override
public
void
sent
(string msg)
@component
public
class
ismsserviceimpl
implements
imessageservice
@override
public
void
sent
(string msg)
@component
public
class
iwechatserviceimpl
implements
imessageservice
@override
public
void
sent
(string msg)
@component
public
class
messagehandler
implements
initializingbean
private map
messageservicemap =
newconcurrenthashmap
<
>(8
);/** * 將imessageservice的類都按照定義好的規則(fetchkey),放入messageservicemap中
*/@override
public
void
afterpropertiesset()
/** *
* @throws bean***ception e
*/@override
public
void
throws bean***ception
/** * 通過key獲取對應的策略實現
** @param key key
* @return imessageservice
*/public imessageservice getmessagesender
(string key)
將來如果需要擴充套件起來也非常容易:只需在impl目錄下新增策略類,定義好對應的策略key,就可以了
public
void
throws bean***ception
或者通過註解獲取;
@autowired
實現了initializingbean的類,會在例項化bean的時候,呼叫其afterpropertiesset方法。
基於spring使用策略模式消除if else
當我們的 出現很多if else的時候,這時候 看起來是非常不美觀的,所以可以使用策略模式將if else消除。這次講的主要是基於spring的 public inte ce operationpublic class addoperation implements operation overri...
使用策略模式消除if else
最近專案中遇到如下情況 有乙個操作叫平帳,然後要對多個不同的款項進行平帳,目測有72種。然後平帳的方法只有乙個,在那個平帳方法裡面,判斷是哪一種款項,然後不同的款項有不同的處理邏輯。if 款項a if 款項b if 款項c 這個就很可怕了。因此使用策略模式來消除掉if else。先看使用策略模式之後...
策略模式及Spring整合策略模式
抽象策略類 inte ce sortservice 具體策略類 class insertionsortserviceimpl implements sortservice else arr j 1 tmp return arr 氣泡排序 class bubblesortserviceimpl imp...