設(shè)計(jì)模式入門(mén)篇

一盔憨、什么是設(shè)計(jì)模式

“每一個(gè)模式描述了一個(gè)在我們周?chē)粩嘀貜?fù)發(fā)生的問(wèn)題滞伟,以及該問(wèn)題的解決方案的核心媚值。這樣宴树,你就能一次又一次地使用該方案而不必做重復(fù)勞動(dòng)”
——Christopher Alexander

盡管Alexander所指的是城市和建筑模式红省,但他的思想也同樣適用于面向?qū)ο笤O(shè)計(jì)模式额各。

受Alexander的啟發(fā),Erich Gamma吧恃、Richard Helm虾啦、Ralph Johnson、Jshn Vlissides四人(人稱Gang Of Four痕寓,GOF)總結(jié)了23種常見(jiàn)的軟件開(kāi)發(fā)設(shè)計(jì)模式

這23種設(shè)計(jì)模式并不描述新的或未經(jīng)證實(shí)的設(shè)計(jì)傲醉,而是經(jīng)過(guò)驗(yàn)證,用于解決在特定環(huán)境下呻率、特定問(wèn)題的解決方案硬毕。

1.1 設(shè)計(jì)模式四要素

  • 模式名稱:助記名,便于記憶和交流
  • 問(wèn)題:交代特定的問(wèn)題場(chǎng)景
  • 解決方案:確定了所包含的類和實(shí)例礼仗,它們的角色吐咳、協(xié)作方式以及職責(zé)分配
  • 效果:使用此解決方案之后所帶來(lái)的最終效果

1.2 為什么需要學(xué)習(xí)設(shè)計(jì)模式

  • 1.設(shè)計(jì)模式已成為軟件開(kāi)發(fā)行業(yè)的“標(biāo)準(zhǔn)詞匯”
  • 2.個(gè)人技術(shù)提高的必備知識(shí)
  • 3.無(wú)須重復(fù)造輪子

二、設(shè)計(jì)模式的分類

GOF將設(shè)計(jì)模式分為23種設(shè)計(jì)模式元践,其中分為三大類

2.1 創(chuàng)建型模式

抽象了對(duì)象實(shí)例化的過(guò)程韭脊,用來(lái)幫助創(chuàng)建對(duì)象的實(shí)例

2.2 結(jié)構(gòu)型模式

描述如何組合類和對(duì)象以獲取更大的結(jié)構(gòu)

2.3 行為型模式

描述算法和對(duì)象間的職責(zé)分配

2.4 設(shè)計(jì)模式總覽

設(shè)計(jì)模式.png

上面標(biāo)紅色五角星的為必須理解透徹的設(shè)計(jì)模式

三、UML類圖

為了更好的學(xué)習(xí)和理解設(shè)計(jì)模式单旁,學(xué)習(xí)設(shè)計(jì)模式之前沪羔,需要掌握UML類圖

3.1 UML類圖

UML,全稱:統(tǒng)一建模語(yǔ)言(Unified Modeling Language)它是讓系統(tǒng)可視化的表現(xiàn)手段慎恒。

UML類圖主要用來(lái)表示類任内、接口、實(shí)例之間相互的靜態(tài)關(guān)系融柬。本系列使用Java語(yǔ)言作為代碼演示死嗦,約定Java的字段屬性與UML的屬性(Attribute)對(duì)等,Java的方法與UML的操作(Operation)對(duì)等粒氧。

UML類圖表示

3.2 UML類圖幾種關(guān)系

UML中四種重要關(guān)系.png

1.依賴關(guān)系(dependency)

它描述一個(gè)對(duì)象在運(yùn)行期會(huì)使用到另一個(gè)對(duì)象的關(guān)系越除。依賴是一種臨時(shí)性的關(guān)系,通常都是在運(yùn)行期間產(chǎn)生外盯,并隨著運(yùn)行場(chǎng)景的不同摘盆,依賴關(guān)系也可能發(fā)生變化

比如人和船這兩個(gè)對(duì)象,如果場(chǎng)景是:開(kāi)動(dòng)輪船饱苟,那么船依賴于人孩擂。如果場(chǎng)景是:渡海,那么人依賴于船

依賴關(guān)系

2.泛化(generalization)

說(shuō)明兩個(gè)對(duì)象之間的繼承關(guān)系箱熬。被繼承的類稱為父類类垦,繼承的類稱為子類

繼承關(guān)系

3.實(shí)現(xiàn)(realization)

描述在一個(gè)類中描述,具體實(shí)現(xiàn)由另一個(gè)類在實(shí)現(xiàn)細(xì)節(jié)

實(shí)現(xiàn)關(guān)系

4.關(guān)聯(lián)(association)

描述了一個(gè)事物對(duì)象與另一個(gè)事物對(duì)象相關(guān)聯(lián)城须。其中關(guān)聯(lián)又具體分為:聚合關(guān)系蚤认、組合關(guān)系。

聚合關(guān)系:表達(dá)整體由部分構(gòu)成糕伐。例如:一個(gè)班級(jí)由多個(gè)學(xué)生構(gòu)成砰琢。

聚合關(guān)系

組合關(guān)系:表達(dá)整體擁有部,是一種強(qiáng)依賴的聚合關(guān)系良瞧。例如:人體是由頭部和眼睛組成.

組合關(guān)系
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末陪汽,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子褥蚯,更是在濱河造成了極大的恐慌掩缓,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遵岩,死亡現(xiàn)場(chǎng)離奇詭異你辣,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)尘执,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)舍哄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人誊锭,你說(shuō)我怎么就攤上這事表悬。” “怎么了丧靡?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵蟆沫,是天一觀的道長(zhǎng)籽暇。 經(jīng)常有香客問(wèn)我,道長(zhǎng)饭庞,這世上最難降的妖魔是什么戒悠? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮舟山,結(jié)果婚禮上绸狐,老公的妹妹穿的比我還像新娘。我一直安慰自己累盗,他們只是感情好寒矿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著若债,像睡著了一般符相。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蠢琳,一...
    開(kāi)封第一講書(shū)人閱讀 51,692評(píng)論 1 305
  • 那天主巍,我揣著相機(jī)與錄音,去河邊找鬼挪凑。 笑死孕索,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的躏碳。 我是一名探鬼主播搞旭,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼菇绵!你這毒婦竟也來(lái)了肄渗?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤咬最,失蹤者是張志新(化名)和其女友劉穎翎嫡,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體永乌,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惑申,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翅雏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片圈驼。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖望几,靈堂內(nèi)的尸體忽然破棺而出绩脆,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布靴迫,位于F島的核電站惕味,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏玉锌。R本人自食惡果不足惜名挥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望芬沉。 院中可真熱鬧,春花似錦阁猜、人聲如沸丸逸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)黄刚。三九已至,卻和暖如春民效,著一層夾襖步出監(jiān)牢的瞬間憔维,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工畏邢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留业扒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓舒萎,卻偏偏與公主長(zhǎng)得像程储,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子臂寝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容