你所學習的設計模式到底有什麼用?到底怎麼用?

2021-09-07 15:49:33 字數 2695 閱讀 9775

經過大約兩個月的磨蹭,我終於是把設計模式打下來了。

具體詳細在:

那麼當我學習完成之後,所想到的第一件事,也就是你們標題上面所看到的一樣

學設計模式到底有啥用啊?在我學習完成之後為了寫這個總結也是抓耳撓腮了一遍

所以在此需要對學習進行乙個總結,這也是乙個個人的總結,如果有不對的地方也請原諒

我所能想到的普遍的目的有下面幾個

1、別人都說要學,別人都說好,所以我要學

2、面試會被問,所以必須學

3、讀原始碼時看到別人在用,不學看不懂原始碼為什麼這樣寫

4、我剛好看到一本設計模式的書,嗯不錯,我想學學

是不是看上去都直戳你的心,好像確實是這樣的

不過我可以這麼說,無論你出於哪一種目的去學習,只要去學習總比不學要好,至於學了有沒有用,那就是你看下去的原因咯

從書上摘話給你們看看

幫助我們將應用組織成容易了解,容易維護,具有彈性的架構,建立可維護的oo系統,要訣在於隨時想到系統以後可能需要的變化以及應付變化的原則。

這麼複雜的解釋肯定是不願意看了,我用我的話來總結

1、設計模式能讓專業人之間交流方便,如下:

程式設計師a:這裡我用了***設計模式

程式設計師b:那我大致了解你程式的設計思路了

2、易維護

專案經理:今天客戶有這樣乙個需求…

程式設計師:明白了,這裡我使用了***設計模式,所以改起來很快

3、設計模式是程式設計經驗的總結

程式設計師a:b,你怎麼想到要這樣去構建你的**

程式設計師b:在我學習了***設計模式之後,好像自然而然就感覺這樣寫能避免一些問題

4、學習設計模式並不是必須的

程式設計師a:b,你這段**使用的是***設計模式對嗎?

程式設計師b:不好意思,我沒有學習過設計模式,但是我的經驗告訴我是這樣寫的

上面就是我總結的設計模式的作用,我想聰明的你應該能理解我所表達的意思

我想很多人關心這個問題,確實我很關心,不然總感覺自己學習完成之後,跟沒有學沒什麼區別

首先我不想和別人說的一樣:「設計模式是一種思想,是一種經驗,你寫多了自然就明白了」

我不否認,但是我覺得不是乾貨,聽了總很難過。

所以我總結了我自己的用法

1、如果你處於**級別(下面有提到)

請在優化**的時候再使用設計模式!!!

我的理解是這樣的,首先在此,你對設計模式的理解並不是很深入,如果直接拿來用,可能會導致很多問題。所以你在寫**的時候,寧可忘記你學過設計模式,然後你自己去寫。當你寫完了之後,你需要對你的**進行優化,那麼這個時候你就需要嘗試去找問題了。在你的**中是否有很多重複片段,是否有很多冗長的**,乙個類的職責是否過多,如果客戶提出修改你的**是否能進行維護和修改。此時你如果你發現有地方需要進行優化,而優化的方式有所參考的話,你就可以進行使用了。

這樣的好處是,你明顯能感覺到使用設計模式前後,你**的變化,以及這個設計模式的好處,在以後的工作中就有經驗了。

當然不好的地方是,明顯很累嘛,但是前期吃點苦,我覺得踩踩坑也沒什麼不好的。當然如果你是高手,那當這條沒看到~

2、請使用設計模式的專有命名

比如說,在乙個地方你需要使用工廠模式,那麼你就在工廠類的名字後面加factory,其他的設計模式也是類似的

乙個是為了你自己以後維護的方便,乙個是為了別人協同工作的時候閱讀你**的方便,這樣你們交流就有了共同的語言

3、明白設計模式的作用,參考別人**中去使用會很有效

如果你在使用乙個設計模式前,請明白這個設計模式的作用是什麼

再者,如:當你看到mybatis原始碼中產生sqlsession物件使用工廠模式,那麼你先去想為什麼它要這麼做,這樣做的好處是什麼,你的業務是否也是和他相同的狀況呢?

當你了解了環境之後,你使用設計模式會變得非常有效

4、設計模式多用於複雜系統,方法設計,負責業務邏輯,增加**可維護性方面

你學習了這麼多東西,你肯定會說,我在實際中也沒見到什麼人在他的**中使用設計模式呀。

確實在實際的專案中,其實如果不是非常複雜的專案基本上用不到設計模式,也沒有什麼特別的必要,很多時候,設計模式會出現在上面所說的情況下,所以你也不需要奇怪。

漸漸的你有一天就會明白它的存在。

1、青銅:剛開始學程式設計不久,聽說過什麼是設計模式

2、**:有很長時間的程式設計經驗,自己寫了很多**,其中用到了設計模式,但是自己卻不知道

3、**:學習過了設計模式,發現,哇,原來我已經在使用了,並且發現了一些新的模式挺好用的

4、鉑金:閱讀了很多別人寫的原始碼,在其中看到別人設計模式精彩的使用所以學習了下來

5、鑽石:**寫著寫著,自己都沒有意識到使用了設計模式,就熟練的寫了下去

這個也只是我個人認為的比較好的學習時間,僅供參考

物件導向思想紮實,且對於程式設計有自己認識看法的時候

能熟練使用別人的框架做一些簡單的專案

有過至少乙個自己的完整專案

想進一步提公升自己**認識水平能力的時候

1、首先通過書本,或者部落格,了解熟知常見的設計模式

2、自己嘗試寫出關於這個設計模式的例子

3、嘗試在別人的**中找到這樣的設計模式進行學習

4、積累

正所謂「不積跬步,無以至千里」學習是乙個積累的過程。

介面到底有什麼用

我們定義乙個介面 public inte ce ibark 再定義乙個類,繼承於ibark,並且必需實現其中的bark 方法 public class dog ibark public void bark 然後,宣告dog的乙個例項,並呼叫bark 方法 dog 旺財 new dog 旺財.bark...

學歷到底有什麼用

每年都會有不少想考研又在猶豫的學弟學妹問我,考研有用嗎?我也跟不少高學歷的朋友聊過,這個 學歷 到底有什麼用。乙個有趣的現象是,一般上了研的,都喜歡自嘲說,學歷啊 名校啊什麼的,都是浮雲。或者大呼後悔,說想到又 浪費 了自己幾年的光陰,很是悔不當初。問起當年考研的原因,多半是興趣所致,或是覺得自己的...

hashCode到底有什麼用?

hashcode概念 hashcode是jdk根據物件的位址算出來的乙個int數字,即物件的雜湊碼值,代表了該物件在記憶體中的儲存位置。我們都知道hashcode 方法是頂級類object類的提供的乙個方法,所有的類都可以進行對hashcode方法重寫。我們也知道在比較乙個類是否相同時往往會重寫eq...