對設計模式的總結(個人理解)

抽象類更注重料扰,類和類之間的關系焙蹭,和存在的約束。
接口更注重對類的行為約束孔厉,統(tǒng)一規(guī)則帖努。

設計模式的定義:

設計模式(Design pattern)代表了最佳的實踐粪般,通常被有經(jīng)驗的面向對象的軟件開發(fā)人員所采用。設計模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案亩歹。

工廠模式總結:

大概流程:使用一個接口,不同實體類舅柜,實現(xiàn)相同的一個借口躲惰。在工廠類的某個get()方法中根據(jù)輸入條件,選擇創(chuàng)建某一個實體類础拨。

我的問題:為什么是用接口去約束實體類,而不是使用抽象類滔蝉?

我的答案:因為在工廠模式中,并不需要讓實體類繼承某個特定成員屬性蝠引。而這里僅僅需要讓實體類遵循某種規(guī)范(如重寫相同的方法)蛀柴,并且實現(xiàn)同一個接口后,這些實體類都會具有一個繼承后產(chǎn)生的特性即為傳遞性(子類繼承父類后鸽疾,父類可以作為子類的引用),這樣在工廠類里制肮,的某個工廠方法中實例這些實體類時候,返回參數(shù)即可都為接口名综液。

抽象工廠模式總結:

大概流程:在原有的工廠類上加了一個抽象工廠類儒飒。然后根據(jù)工廠生產(chǎn)器這個類對返回某個工廠類的工廠實例。在main()房中,通過工廠生產(chǎn)器獲得相應工廠的工廠實例對象,在通過工廠實例對象進一步去獲取不同工廠的不同實例對象

我的問題:為什么抽象工廠模式中的抽象工廠類不是接口圣猎?

我的問題:這里雖然按照邏輯來說可以是抽象類也可以是接口去約束工廠生產(chǎn)器的行為。但是為什么采用抽象類而不采用接口呢慢显?

我的答案:首先這里,工廠生產(chǎn)器只需要繼承一個父類荚藻,而不需要繼承多個父類洁段,所以工廠類為抽象類的第一原因。再次對于理解上來說祠丝,抽象工廠模式可以說是工廠的工廠,這里抽象工廠類岸蜗,更能表現(xiàn)出這個整體為一個對象。而接口從代碼實現(xiàn)上看和抽象類并無區(qū)別叠蝇,但是接口更能體現(xiàn)的是對某些實體類的約束(如:人們上班璃岳,需要打卡,每個人都需要重寫這個打卡方法)

觀察者模式總結:

大概流程:被觀察者(目標對象)目標類中的成員變量中有個List數(shù)組用于存放觀察者悔捶,而觀察者铃慷,都繼承了一個Observer抽象類,這個抽象類中含有一個被觀察者的成員變量(目標對象)炎功。通過繼承Observer抽象類的子類的實例對象枚冗,在構造函數(shù)中傳入一個被觀察者(目標對象)目標對象實例,將類中的被觀察者變量指向該對象實例蛇损。從而進行綁定被觀察者對象(目標對象)赁温。然后根據(jù)被觀察者對象進行對觀察對象進行添加到List數(shù)組中。當被觀察者調用某個方法時候淤齐,則會通知所有的觀察者對象股囊。

我的問題:為什么使用的是Observer抽象類更啄,而不是Observer接口稚疹?

我的答案:因為在Observer抽象類中,我們可以為這個抽象類添加一些成員變量祭务。而接口則沒有類的性質内狗,不存在成員變量怪嫌。所以在觀察者模式里,我們每個具體的觀察者繼承了Observer抽象類時候對需要一個被觀察者的成員變量柳沙。在這些觀察者的需要進行實例話的時候岩灭,則可以在構造函數(shù)里對這個成員變量進行指向某個被觀察者的實例對象。而這里Observer使用抽象類的好處就是繼承這個類的觀察者類不需要再添加被觀察者這個成員變量赂鲤,更能體現(xiàn)出Observer抽象類與觀察者類的關系噪径,而這里使用接口則只能表示出一種約束關系。

總的來說:設計模式充分發(fā)揮了面向對象編程語言的多態(tài)特性数初。在JAVA語言中找爱,更充分的發(fā)揮了抽象類,和接口的不同作用泡孩。

更能體會到了抽象類和接口的特性车摄。

抽象類:具有類的特性,但是無法進行實例化珍德,提供了抽象方法练般,約束了子類的某些行為(如某個函數(shù)必須重寫)。

接口:接口更像是一種行為的規(guī)范锈候,雖然某種情況和抽象類的作用一樣薄料。但是,抽象類更注重泵琳,類和類之間的關系摄职,和存在的約束。而接口更注重對類的行為約束获列,統(tǒng)一規(guī)則谷市。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市击孩,隨后出現(xiàn)的幾起案子迫悠,更是在濱河造成了極大的恐慌,老刑警劉巖巩梢,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件创泄,死亡現(xiàn)場離奇詭異,居然都是意外死亡括蝠,警方通過查閱死者的電腦和手機鞠抑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忌警,“玉大人搁拙,你說我怎么就攤上這事。” “怎么了箕速?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵酪碘,是天一觀的道長。 經(jīng)常有香客問我弧满,道長婆跑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任庭呜,我火速辦了婚禮,結果婚禮上犀忱,老公的妹妹穿的比我還像新娘募谎。我一直安慰自己,他們只是感情好阴汇,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布数冬。 她就那樣靜靜地躺著,像睡著了一般搀庶。 火紅的嫁衣襯著肌膚如雪拐纱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天哥倔,我揣著相機與錄音秸架,去河邊找鬼。 笑死咆蒿,一個胖子當著我的面吹牛东抹,可吹牛的內容都是我干的。 我是一名探鬼主播沃测,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缭黔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蒂破?” 一聲冷哼從身側響起馏谨,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎附迷,沒想到半個月后惧互,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡挟秤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年壹哺,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片艘刚。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡管宵,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情箩朴,我是刑警寧澤岗喉,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站炸庞,受9級特大地震影響钱床,放射性物質發(fā)生泄漏。R本人自食惡果不足惜埠居,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一查牌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滥壕,春花似錦纸颜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至称鳞,卻和暖如春涮较,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冈止。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工狂票, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人靶瘸。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓苫亦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親怨咪。 傳聞我的和親對象是個殘疾皇子屋剑,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內容