第1章 走向靈活軟件之路--面向?qū)ο蟮牧笤瓌t 讀書(shū)記錄

第一章講解了開(kāi)發(fā)過(guò)程中如下六大原則:

1. 優(yōu)化代碼之路--單一職責(zé)原則

????????單一職責(zé)原則的英文名稱(chēng)是Single Responsiblility Principle引颈, 縮寫(xiě)是SRP泥畅。SRP的定義就是: 就一個(gè)類(lèi)而言智末,應(yīng)該僅有一個(gè)引起它變化的原因卧须。簡(jiǎn)單來(lái)說(shuō)淮阐,一個(gè)類(lèi)中應(yīng)該是一組相關(guān)性很高的函數(shù)辣垒、數(shù)據(jù)的封裝灌砖。

2. 讓程序更穩(wěn)定,更靈活--開(kāi)閉原則

????????開(kāi)閉原則的英文全稱(chēng)是Open Close Principle璧函,縮寫(xiě)是OCP,它是Java世界里最基礎(chǔ)的設(shè)計(jì)原則周崭,它指導(dǎo)我們?nèi)绾谓⒁粋€(gè)穩(wěn)定的柳譬、靈活的系統(tǒng)。

????????開(kāi)閉原則的定義是: 軟件中的對(duì)象(類(lèi)续镇、模塊美澳、函數(shù)等)應(yīng)該對(duì)于拓展是開(kāi)放的,但是摸航,對(duì)于修改是封閉的制跟。

????????在軟件的生命周期內(nèi),因?yàn)樽兓椿ⅰ⑸?jí)和維護(hù)等原因需要對(duì)原有代碼進(jìn)行修改時(shí)雨膨,可能會(huì)將錯(cuò)誤引入原本已經(jīng)經(jīng)過(guò)測(cè)試的舊代碼中,破壞原有系統(tǒng)读串。因此聊记,當(dāng)軟件需要變化時(shí),我們應(yīng)該盡量通過(guò)拓展的方式來(lái)實(shí)現(xiàn)變化恢暖,而不是通過(guò)修改已有的代碼來(lái)實(shí)現(xiàn)排监。當(dāng)然,在現(xiàn)實(shí)開(kāi)發(fā)中杰捂,只通過(guò)繼承的方式來(lái)升級(jí)舆床、維護(hù)原有系統(tǒng)只是一個(gè)理想化的愿景,因此嫁佳,在實(shí)際開(kāi)發(fā)過(guò)程中挨队,修改原有代碼、拓展代碼往往是同時(shí)存在的蒿往。

3. 構(gòu)建拓展性更好的系統(tǒng)--里氏替換原則

? ? ????里氏替換原則的英文全稱(chēng)是Liskoy Subtitution Principle盛垦,縮寫(xiě)是LSP。

????????LSP的第一種定義是: 如果每一個(gè)對(duì)象類(lèi)型為S的O1瓤漏,都有類(lèi)型為T(mén)的對(duì)象O2情臭,使得T對(duì)象定義的所有程序P在所有對(duì)象O1都換成O2時(shí)省撑,程序P的行為沒(méi)有發(fā)生變化,那么類(lèi)型S是類(lèi)型T的子類(lèi)型俯在。

? ? ????LSP的第二種定義: 所有引用基類(lèi)的地方必須能透明的使用其子類(lèi)的對(duì)象竟秫。

里氏替換原則,抽象是核心跷乐。

4. 讓項(xiàng)目擁有變化的能力--依賴(lài)倒置原則

????????依賴(lài)倒置原則英文全稱(chēng)是Dependence Inversion Principle肥败,縮寫(xiě)是DIP。依賴(lài)倒置原則指代一種特定的解耦形式愕提,使得高層次模塊不依賴(lài)于低層次模塊的實(shí)現(xiàn)細(xì)節(jié)的目的馒稍,依賴(lài)模塊被顛倒了。

依賴(lài)倒置原則有以下幾個(gè)關(guān)鍵點(diǎn):

????????(1). 高層次模塊不應(yīng)該以來(lái)低層次模塊浅侨,兩者都應(yīng)該依賴(lài)其抽象纽谒;

????????(2). 抽象不應(yīng)該依賴(lài)其細(xì)節(jié);

????????(3). 細(xì)節(jié)應(yīng)該依賴(lài)抽象如输。

5. 系統(tǒng)有更高的靈活性--接口隔離原則

????????接口隔離原則的英文全稱(chēng)是Interface Segregation Principle,縮寫(xiě)是ISP.

????????ISP的定義是:客戶端不應(yīng)該依賴(lài)于它不需要的接口.

????????另一種定義是: 類(lèi)間的依賴(lài)關(guān)系應(yīng)該建立在最小的接口上鼓黔。

? ? ? ? 接口隔離原則將非常龐大、臃腫的接口拆分成更小的和更具體的接口不见,這樣客戶將只會(huì)需要知道他們感興趣的方法澳化。接口隔離原則的目的是系統(tǒng)解開(kāi)耦合,從而容易重構(gòu)稳吮、更改和部署缎谷。

單一職責(zé)、開(kāi)閉原則灶似、里氏替換列林、接口隔離以及依賴(lài)倒置? 5個(gè)原則定義為 SOLID原則 ,作為面向?qū)ο缶幊痰?個(gè)基本原則.

6. 更好的拓展行--迪米特原則

? ? ? ? 迪米特原則英文全稱(chēng)是Law Oof Demeter,縮寫(xiě)是LOD酪惭,也稱(chēng)為最少知識(shí)原則(Least Knowledge Principle)希痴。它的定義是:一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象有最少的了解。通俗的講撞蚕,一個(gè)類(lèi)應(yīng)該對(duì)自己需要耦合或者調(diào)用的類(lèi)知道的最少。類(lèi)的內(nèi)部如何實(shí)現(xiàn)與調(diào)用者或依賴(lài)者沒(méi)關(guān)系过牙,調(diào)用者或依賴(lài)者只需要知道它需要的方法即可甥厦,其他的可以一概不管。類(lèi)與類(lèi)關(guān)系之間的關(guān)系越密切寇钉,耦合度越大刀疙,當(dāng)一個(gè)類(lèi)發(fā)生改變時(shí),對(duì)另一個(gè)類(lèi)的影響也越大扫倡。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末谦秧,一起剝皮案震驚了整個(gè)濱河市竟纳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌疚鲤,老刑警劉巖锥累,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異集歇,居然都是意外死亡桶略,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)诲宇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)际歼,“玉大人,你說(shuō)我怎么就攤上這事姑蓝《煨模” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵纺荧,是天一觀的道長(zhǎng)旭愧。 經(jīng)常有香客問(wèn)我,道長(zhǎng)虐秋,這世上最難降的妖魔是什么榕茧? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮客给,結(jié)果婚禮上用押,老公的妹妹穿的比我還像新娘。我一直安慰自己靶剑,他們只是感情好蜻拨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著桩引,像睡著了一般缎讼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坑匠,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天血崭,我揣著相機(jī)與錄音,去河邊找鬼厘灼。 笑死夹纫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的设凹。 我是一名探鬼主播舰讹,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼闪朱!你這毒婦竟也來(lái)了月匣?” 一聲冷哼從身側(cè)響起钻洒,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锄开,沒(méi)想到半個(gè)月后素标,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡院刁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年糯钙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片退腥。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡任岸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狡刘,到底是詐尸還是另有隱情享潜,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布嗅蔬,位于F島的核電站剑按,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏澜术。R本人自食惡果不足惜艺蝴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸟废。 院中可真熱鬧猜敢,春花似錦、人聲如沸盒延。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)添寺。三九已至胯盯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間计露,已是汗流浹背博脑。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留票罐,地道東北人叉趣。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像胶坠,于是被迫代替她去往敵國(guó)和親君账。 傳聞我的和親對(duì)象是個(gè)殘疾皇子繁堡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

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

  • 前言 關(guān)于設(shè)計(jì)模式六大設(shè)計(jì)原則的資料網(wǎng)上很多沈善,但感覺(jué)很多地方解釋地都太過(guò)于籠統(tǒng)化乡数,特此再總結(jié)一波。 優(yōu)化第一步-單...
    ghroost閱讀 1,104評(píng)論 0 5
  • 單一職責(zé)原則 (SRP) 全稱(chēng) SRP , Single Responsibility Principle 單一職...
    米莉_L閱讀 1,764評(píng)論 2 5
  • 1闻牡、單一職責(zé)原則 Single Responsibility Principle净赴, SRP的定義是:就一個(gè)類(lèi)而言,...
    李斯維閱讀 481評(píng)論 0 3
  • 本文出自《Android源碼設(shè)計(jì)模式解析與實(shí)戰(zhàn)》中的第一章罩润。 1玖翅、優(yōu)化代碼的第一步——單一職責(zé)原則 單一職責(zé)原則的...
    MrSimp1e0閱讀 1,766評(píng)論 1 13
  • 淡淡的香 如編織的網(wǎng) 在記憶里扎根 會(huì)忘記的 不是過(guò)往 會(huì)記憶的 只有那一縷淡淡的香
    柏淺歌閱讀 140評(píng)論 0 4