架構(gòu)最重要的就是編程思想:
- 利于開發(fā)者
- 利于公司
- 利于客戶
在日常開發(fā)中我們需要遵從六大基本原則,分別是:
- 單一職責(zé)原則(SRP Single Responsibility Principle) -> 可參考firstChapter version2
定義:對(duì)一個(gè)類來說,應(yīng)該僅有一個(gè)引起它變化的原因。簡(jiǎn)單來說就是模塊的劃分需要做到職責(zé)清晰,不要既能滿足A需求,又能滿足B需求,這樣耦合太強(qiáng),不利于后期的擴(kuò)展和維護(hù)。
- 開閉原則(COP Open Close Principle)-> 可參考firstChapter version3
定義:軟件中的對(duì)象(類、模塊、函數(shù)等)應(yīng)該對(duì)于擴(kuò)展是開放的,但是對(duì)于修改是封閉的。簡(jiǎn)單的說就是程序中類應(yīng)該是易于擴(kuò)展的,而不是一有什么新的需求或者變化就去修改原來的代碼,這樣很容易出現(xiàn)問題。
- 里氏替換原則(LSP Liskov Substitution Principle)-> 可參考firstChapter version3
定義:在基類出現(xiàn)的地方,其子類也可以出現(xiàn),并且不會(huì)出現(xiàn)錯(cuò)誤。簡(jiǎn)單的說就是利用了Java面向?qū)ο笏枷胫械睦^承、多態(tài)的特性。
- 依賴導(dǎo)致原則(DIP Dependence Inversion Principle)-> 可參考firstChapter version3
定義:高層次的模塊不依賴于低層次的模塊的實(shí)現(xiàn)細(xì)節(jié)。簡(jiǎn)單來說就是依賴抽象(高層次模塊)而不依賴具體實(shí)現(xiàn)(低層次模塊)。
- 接口隔離原則(ISP InterfaceSegregation Principles)-> 可參考firstChapter version3
定義:不依賴不需要的接口,從而容易重構(gòu)、更改和重新部署。
- 迪米特原則(最少知識(shí)原則 LKP/LOD Least Knowledge Principle)-> 可參考firstChapter version4
定義:一個(gè)類應(yīng)該對(duì)自己需要耦合或者調(diào)用的類知道的最少,類的內(nèi)部如何實(shí)現(xiàn)與調(diào)用者或者依賴者沒關(guān)系,調(diào)用者或者依賴者只需要知道它需要的方法即可。