如何使用設計模式去除if else的硬編碼語句呢?

2021-08-31 20:09:04 字數 427 閱讀 8324

如何去除if else的硬編碼語句呢?

在**中經常碰到if else 語句,當你看到這些硬編碼的if else時有沒有想處理掉的衝動呢?

if else的判斷邏輯是不是比較簡單,簡單到只是某個字串的相等判斷,if else 要幹的事情,是側重處理 handle 還是側重演算法,如果意圖是處理,那麼可以考慮是命令,如果意圖是演算法,那麼可以考慮是策略。那麼如何產生這些handler,或者strategy呢?當然是工廠模式了。但是在工廠模式或者建立方法,還是有if else 語句啊。不論是工廠中使用class反射,還是new。

我們只是通過構建map,通過spring注入到類中,再通過key來得到某個實現類,這些實現類都是實現了統一的乙個介面,這樣就去除了if else的硬編碼語句。

你可以把抽象出來的介面看作command,也可以看作strategy,關鍵看是你的意圖是什麼。

Spring中如何使用設計模式

關於設計模式,如果使用得當,將會使我們的 更加簡潔,並且更具擴充套件性。本文主要講解spring中如何使用策略模式,工廠方法模式以及builder模式。關於策略模式的使用方式,在spring中其實比較簡單,從本質上講,策略模式就是乙個介面下有多個實現類,而每種實現類會處理某一種情況。我們以發獎勵為例...

Spring中如何使用設計模式

關於設計模式,如果使用得當,將會使我們的 更加簡潔,並且更具擴充套件性。本文主要講解spring中如何使用策略模式,工廠方法模式以及builder模式。關於策略模式的使用方式,在spring中其實比較簡單,從本質上講,策略模式就是乙個介面下有多個實現類,而每種實現類會處理某一種情況。我們以發獎勵為例...

設計模式 如何優雅地使用責任鏈模式

責任鏈模式 chain of responsibility pattern 在 head first設計模式 一書中被稱為 剩下的模式 其實使用也是蠻多的。最近在學習netty的過程中用到了責任鏈模式,在此反過頭來重溫一下責任鏈模式。當你想要讓乙個以上的物件有機會能夠處理某個請求的時候,就使用責任鏈...