第一章講解了開(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)的影響也越大扫倡。