近期學習新得 重構 設計模式

2021-08-25 12:45:04 字數 790 閱讀 7298

之前對於設計模式的理解就是減少變化點,並以此判斷模式是否適用得當。乙個問題來了,假如只是轉移而沒有減少變化點,那還有必要使用該模式嗎?

比如策略模式,如不使用它,單純用if/else,變化點不會更多。策略無論增、減、改,兩者都只需要修改一處。區別只有乙個,使用了模式後一旦需求變化,改起來「貌似」更容易,畢竟人家把**分成一小塊一小塊,且建立了良好的封裝,可讀性更強;如果涉及的策略眾多,演算法更複雜,它的價值就更大。但說不使用就不符合「開閉原則」,使用後才符合,我不能認同,使用之前需要修改現有**,使用之後照樣要修改,且修改的地方不比原來少,區別只是難易程度。

「可讀性更強」也應該是設計模式的價值之一,否則在此例中大可以只寫乙個類,裡面只有乙個方法,卻可以幹所有的事情。這大概就是策略模式的價值,也是其他類似封裝的價值。

再談下乙個。

本人雖在設計模式方面尚屬才疏學淺,但也感覺到玩轉設計模式,其實就是要玩轉oo的幾大特性,要深刻理解它們的作用,做到活學活用、「不拘於物,草木竹石均可為劍」。

當然了,知道獨孤求敗厲害是一回事,學不學他的功夫又是一回事。下面在下就獻醜談一談近期對方法「封裝」的理解。

1、最直白的作用:解釋一段**的功能,比如將一大段布林判斷提取出來,實現從「怎麼做」到「做什麼」的語義轉變;即使只有這乙個地方用也值得。當然前提是方法命名的功力到位。

2、有利於功能復用。消除重複**;方法提取粒度越小就越有可能實現復用。

3、解耦。封裝可能變化的部分,避免外界直接對其進行訪問。

4、增加**可讀性。由於方法提取充分,命名恰當,使得原始方法不會太長,且邏輯清晰。

不足之處還請指正。

001 設計模式,重構,設計原則

一 起因 的復用是我們追求的境界,因為復用我們可以減輕我們工作量,這就是我們追求設計最初的目的.在物件導向的設計中,的復用最常見的方式有兩種 1 繼承的方式 由於繼承,子類就擁有了父類的方法,那麼我們就沒必要重新複製一遍父類的實現方式,這是一種復用方式.但是,繼承會帶來一些列的問題.因為一旦繼承,我...

機房重構 設計模式那點兒事兒

這次做機房重構的總結,我主要說說設計模式。這是策略模式的uml圖,這個就是個思想,策略模式就是針對乙個問題的多種選擇或是多種解決方法,及比如超市結賬,會員卡有一種結賬模式,無會員卡是一種結賬模式,超市哪種商品打折要怎麼就結賬,有會員卡,然後還有打折,這需要怎麼結賬,所以,我們用策略模式來解決。這樣看...

《微服務架構設計模式》 學習總結06

本篇主要總結第六章 使用事件溯源開發業務邏輯 將類對映到資料庫表,將類的字段對映到資料表中的列,類的例項對映到資料表中的行。比較成熟的orm,像mybatis jpa等。缺乏聚合歷史 實施審計功能將非常煩瑣且容易出錯事件發布凌駕於業務邏輯之上 事件溯源將每個聚合作為一系列事件來持久化儲存,每個事件代...