Java設(shè)計(jì)模式(一)初步了解Java設(shè)計(jì)模式

概述

有時(shí)候看源碼的時(shí)候總是對(duì)代碼中很多代碼中的設(shè)計(jì)感覺很不理解,但有覺得特別精到,后面了解到這是Java的設(shè)計(jì)模式,學(xué)習(xí)設(shè)計(jì)模式可以讓自己對(duì)Java的編碼與Java的設(shè)計(jì)思想有更多的感悟,對(duì)編碼也會(huì)有很大的提升.

初步了解Java設(shè)計(jì)模式

設(shè)計(jì)模式的概念

使用設(shè)計(jì)模式是為了提高代碼的重用性,使得代碼更易理解并保證代碼的可靠性.

在我們平常編寫代碼的過程,其實(shí)很多項(xiàng)目的建立都是在Copy,Copy,Copy的過程,我們使用Java中的API,將代碼的編程變成了修房子中搬磚的過程.So 低級(jí)的程序員又稱為碼農(nóng).

一般可復(fù)用的系統(tǒng)一般有兩大類:工具箱(一般是我們的Util包),Framework(框架).

我們?cè)趯慦eb的時(shí)候,我們不使用框架,其實(shí)我們就是在自己編寫底層,Framework(框架)就是已經(jīng)寫好底層代碼只等我們進(jìn)行調(diào)用.——— 出自一朋友對(duì)框架的認(rèn)識(shí)

Java的設(shè)計(jì)模式貫徹的原理是:面向接口編程,而不是面向?qū)崿F(xiàn).

目標(biāo)原則:降低耦合,增強(qiáng)靈活性.

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

常用設(shè)計(jì)模式有23中,按照特點(diǎn)分為三大類型:創(chuàng)建型,結(jié)構(gòu)型,行為型.

創(chuàng)建型

顧名思義,創(chuàng)建型模式是用來創(chuàng)建對(duì)象的模式,抽象了實(shí)例化的過程,幫助系統(tǒng)獨(dú)立于其關(guān)聯(lián)對(duì)象的創(chuàng)建,組合和表達(dá)方式.創(chuàng)建型模式都用兩個(gè)主要的功能:

  • 將具體類中實(shí)現(xiàn)過程封裝起來.
  • 隱藏類的實(shí)例是如何被創(chuàng)建和組織起來的.外界只知道接口,不知道如何實(shí)現(xiàn)的.

創(chuàng)造型模式的作用概況為兩點(diǎn):

  • 封裝創(chuàng)建邏輯,不僅僅是new一個(gè)對(duì)象那么簡(jiǎn)單.
  • 封裝創(chuàng)建邏輯變化,客戶代碼盡量不修改或者盡量少修改.
水果 fruit=new 蘋果();
水果 fruit=new 梨子();

在其他地方需要用到fruit的地方,仍然不需要進(jìn)行改變,這樣可以讓我們客戶代碼精良不修改或者盡量少修改.

常見的創(chuàng)造型設(shè)計(jì)模式有下面幾種:

  • 單例模式:一個(gè)類只有一個(gè)實(shí)例,并且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例.
  • 工廠模式:在工廠方法模式中,工廠類成為了抽象類,實(shí)際的創(chuàng)建工作將由其具體子類來完成.
  • 抽象工廠模式:抽象工廠是所有工廠模式中最為抽象且最具有一般性的一種形態(tài).
  • 建造者模式:把構(gòu)造對(duì)象實(shí)例的邏輯移動(dòng)了類的外部,在類的外部定義了該類的結(jié)構(gòu)邏輯.
  • 原型模式:原型模式和工廠模式一樣,對(duì)客戶隱藏了對(duì)象創(chuàng)建工作的實(shí)現(xiàn)細(xì)節(jié),但是原型模式是通過復(fù)制一個(gè)現(xiàn)有對(duì)象來生成新對(duì)象.

結(jié)構(gòu)型

常用的結(jié)構(gòu)性設(shè)計(jì)模式有以下幾種:

  • 代理模式
  • 裝飾模式
  • 設(shè)配器模式
  • 組合模式
  • 橋梁模式
  • 外觀模式
  • 享元模式

行為型

常見的行為型設(shè)計(jì)模式有以下幾種:

  • 模板方法模式
  • 命令模式
  • 責(zé)任鏈模式
  • 策略模式
  • 迭代器模式
  • 中介者模式
  • 觀察者模式
  • 備忘錄模式
  • 訪問者模式
  • 狀態(tài)模式
  • 解釋器模式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吗伤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子步做,更是在濱河造成了極大的恐慌矢棚,老刑警劉巖妓蛮,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侦香,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡烦却,警方通過查閱死者的電腦和手機(jī)宠叼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門先巴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來其爵,“玉大人冒冬,你說我怎么就攤上這事∧γ欤” “怎么了简烤?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)摇幻。 經(jīng)常有香客問我横侦,道長(zhǎng),這世上最難降的妖魔是什么绰姻? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任枉侧,我火速辦了婚禮,結(jié)果婚禮上狂芋,老公的妹妹穿的比我還像新娘榨馁。我一直安慰自己,他們只是感情好帜矾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布翼虫。 她就那樣靜靜地躺著,像睡著了一般屡萤。 火紅的嫁衣襯著肌膚如雪珍剑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天死陆,我揣著相機(jī)與錄音招拙,去河邊找鬼。 笑死措译,一個(gè)胖子當(dāng)著我的面吹牛迫像,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瞳遍,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼闻妓,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了掠械?” 一聲冷哼從身側(cè)響起由缆,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎猾蒂,沒想到半個(gè)月后均唉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡肚菠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年舔箭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡层扶,死狀恐怖箫章,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情镜会,我是刑警寧澤檬寂,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站戳表,受9級(jí)特大地震影響桶至,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜匾旭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一镣屹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧价涝,春花似錦野瘦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至泞遗,卻和暖如春惰许,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背史辙。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工汹买, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人聊倔。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓晦毙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親耙蔑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子见妒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法甸陌,內(nèi)部類的語法须揣,繼承相關(guān)的語法,異常的語法钱豁,線程的語...
    子非魚_t_閱讀 31,622評(píng)論 18 399
  • 原文鏈接:http://blog.csdn.net/zhangerqing http://www.cnblogs....
    孤獨(dú)雜貨鋪閱讀 1,515評(píng)論 0 3
  • 設(shè)計(jì)模式匯總 一耻卡、基礎(chǔ)知識(shí) 1. 設(shè)計(jì)模式概述 定義:設(shè)計(jì)模式(Design Pattern)是一套被反復(fù)使用、多...
    MinoyJet閱讀 3,939評(píng)論 1 15
  • 一牲尺、設(shè)計(jì)模式的分類 總體來說設(shè)計(jì)模式分為三大類: 創(chuàng)建型模式卵酪,共五種:工廠方法模式、抽象工廠模式、單例模式溃卡、建造者...
    RamboLI閱讀 749評(píng)論 0 1
  • 這可能是我第一次想寫一寫高考,距離高考畢業(yè)兩年,第一次回憶高考.畢業(yè)的時(shí)候不想回憶也覺得沒有必要,直到最近...
    余生與你iz閱讀 270評(píng)論 0 0