国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

設(shè)計模式怎么學才能成為面試加分項?42頁6大問題帶你透徹理解設(shè)計模式!

2023-07-04 16:20 作者:馬士兵說  | 我要投稿

什么是設(shè)計模式?

設(shè)計模式是解決常見軟件設(shè)計問題的經(jīng)驗總結(jié),可以看成是一本代碼設(shè)計寶典,幫助開發(fā)人員更好地完成軟件設(shè)計工作。

1994 年,艾瑞克·伽馬(ErichGamma)、理査德·海爾姆(Richard Helm)、拉爾夫·約翰森(Ralph Johnson)、約翰·威利斯迪斯(John Vlissides)等 4 作者合作出版了《設(shè)計模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》一書,在此書中收錄了 23 個設(shè)計模式,這是設(shè)計模式領(lǐng)域里程碑的事件,導致了軟件設(shè)計模式的突破。

擴展回答: 設(shè)計模式的分類

GoF設(shè)計模式只有23個,但是它們各具特色 ,每個模式都為某一個可重復(fù)的設(shè)計問題提供了一套解決方案。

根據(jù)它們的用途,設(shè)計模式可分為 創(chuàng)建型(Creational) ,結(jié)構(gòu)型(Structural)行為型(Behavioral);

創(chuàng)建型模式(5)提供創(chuàng)建對象的機制,提升已有代碼的靈活性和可復(fù)用性;

常用的有:單例模式、工廠模式(工廠方法和抽象工廠)、建造者模式。

不常用的有:原型模式。

結(jié)構(gòu)型模式(7)介紹如何將對象和類組裝成較大的結(jié)構(gòu),并同時保持結(jié)構(gòu)的靈活和高效常用的有:代理模式、橋接模式、裝飾者模式、適配器模式。

不常用的有:門面模式、組合模式、享元模式。

行為模式(11)負責對象間的高效溝通和職責傳遞委派;

常用的有:觀察者模式、模板模式、策略模式、職責鏈模式、迭代器模式、狀態(tài)模式。?

不常用的有:訪問者模式、備忘錄模式、命令模式、解釋器模式、中介模式。

曾有人說過“設(shè)計模式數(shù)據(jù)結(jié)構(gòu)算法就好比喻九陽神功,你會了九陽神功再學習其他的武功那就事半功倍”,這個比喻恰到好處。

在實際中我們也經(jīng)常跟設(shè)計模式打交道,比如我們剛開始面試的時候基本上大部分的IT公司都會問你:

我們從“能寫代碼”“寫好代碼”再到“能夠設(shè)計代碼”,這不僅僅是技術(shù)的提升也是我們編程思想的提升,其中的關(guān)鍵就是設(shè)計模式。

開發(fā)過程中面臨著高內(nèi)聚低耦合性、可維護性、可擴展性、可重用性以及靈活性等多方面的挑戰(zhàn),使用設(shè)計模式就是為了讓程序變得更好。而能否理解并掌握設(shè)計模式已變成了衡量程序員能力的標準之一。

下面我們就來認識下九陽神功的基礎(chǔ)功之——設(shè)計模式

一、設(shè)計模式是什么?

設(shè)計模式(Design pattern)簡單來說就是在軟件工程中,我們的前輩們在程序不斷開發(fā)的過程中為了可以實現(xiàn)代碼重用、可擴展、保證代碼可讀性和可靠性、提高我們的開發(fā)和維護效率,而總結(jié)出了一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的代碼設(shè)計經(jīng)驗(讓我們少走彎路)。

目前開發(fā)中比較流行的還是1994年GoF(Gang of Four四人組)發(fā)布的Design patterns書中的提到的23種經(jīng)典設(shè)計模式。

當然現(xiàn)在設(shè)計模式的種類不僅僅這些,是一些大佬或者公司內(nèi)部研發(fā)的設(shè)計模式,只不過并沒有公開而已。

二、設(shè)計模式的優(yōu)勢:

◆重用設(shè)計,實現(xiàn)代碼的重用。

◆提高代碼質(zhì)量,設(shè)計模式有助于我們編寫出高質(zhì)量,可維護的代碼,讓系統(tǒng)重構(gòu)變得更加容易。

◆提高代碼閱讀能力

優(yōu)秀的代碼毋庸置疑一定會使用設(shè)計模式,如果不了解設(shè)計模式的情況下去閱讀肯定難以理解,也不能從同一高度的去分析源碼或者別人寫的代碼。

◆節(jié)省溝通成本

工作中討論問題的人都知曉設(shè)計模式的話,就不需要對設(shè)計模式做更多的解釋,只需要討論使用那種設(shè)計模式就可以,在開發(fā)文檔中采用設(shè)計模式詞匯其他人也更容易你的想法和做法。

◆節(jié)省時間

往往采用正確的設(shè)計模式,可以節(jié)約我們開發(fā)和維護的大量時間。

三、設(shè)計模式的分類:

23種經(jīng)典設(shè)計模式按照類型來分的話可以分為三類:創(chuàng)建型、?結(jié)構(gòu)型、行為型。

這23種設(shè)計模式其實我們開發(fā)中都有接觸,只不過我們可能使用它的時候?qū)λ⒉皇煜ぁ?span id="2s04ssssssss" class="bjh-br" style="">

以java語言為例,例如:java的IO流使用的高級流BufferedInputStream就使用了裝飾者設(shè)計模式,集合List和和Set遍歷使用的Iterator就是使用了迭代器模式,JDBC連接數(shù)據(jù)庫加載驅(qū)動獲取連接就使用了橋接模式,對象的深淺層次拷貝就是使用的原型模式等等。

Java語言中非常流行的框架spring被稱為非常厲害的框架,設(shè)計模式在spring中的展現(xiàn)可謂是淋漓盡致。

四、42頁6大問題帶你透徹理解設(shè)計模式

什么是設(shè)計模式?

設(shè)計模式中有哪些原則?

說—說單例模式?

說─說簡單工廠模式?

說—說工廠方法模式?

抽象工廠模式了解嗎?

限于文章篇幅原因,就展示到這里了,資料已整理成文檔,有需要的小伙伴幫忙轉(zhuǎn)發(fā)文章后,查看評論區(qū)獲取方式!?

另有設(shè)計模式書籍贈送~

設(shè)計模式怎么學才能成為面試加分項?42頁6大問題帶你透徹理解設(shè)計模式!的評論 (共 條)

分享到微博請遵守國家法律
莎车县| 巴塘县| 固始县| 阳原县| 秦安县| 巨野县| 额敏县| 永新县| 金阳县| 石林| 临武县| 特克斯县| 黑山县| 大洼县| 教育| 马龙县| 新密市| 太和县| 望城县| 平江县| 阿拉善盟| 澄城县| 浮梁县| 道真| 黄石市| 教育| 河西区| 四会市| 广灵县| 通山县| 东丽区| 梁山县| 贵南县| 望奎县| 澄迈县| 张家川| 苏州市| 昂仁县| 巴东县| 翼城县| 婺源县|