架構師的目的是為了什么?----利他
針對開發(fā)者(站在開發(fā)者角度進行軟件設計和開發(fā))
針對公司(站在公司角度進行軟件設計和開發(fā))
針對客戶(站在客戶角度進行軟件設計和開發(fā))
單一職責原則
全稱:Single Responsibility Principle
縮寫:SRP
定義:就一個類而言顽腾,應該僅有的一個引起變化的原因虱咧。
通俗一點:一個類中應該是一組相關性很高的函數仔燕、函數封裝源武。
說白了模塊劃分
案例:簡單圖片加載框架進行演示
開閉原則
全稱:Open Close Principle
縮寫:OCP
定義:對擴展是開放的,對修改是關閉的
案例:簡單圖片緩存框架
里氏替換原則
全稱:Liskov Substitution Principle
縮寫:LSP
定義:任何一個基類可以出現的地方副瀑,子類一定可以出現民傻,并且不會產生任何錯誤(注意:必須是父子關系)
總結:
第一個注意:里氏替換原則核心就是抽象(繼承和接口) 每一個子類都會擁有父類的方法屬性胰默。
第二個注意:開閉原則和里氏替換原則生死相依,通過里氏替換原則達到了對外開放漓踢,對修改關閉牵署。
依賴導致原則
全稱:Dependence inversion Principle
縮寫:DIP
定義:高層次模塊不依賴于低層次模塊實現細節(jié)
A.高層次的模塊不應該依賴于低層次的模塊,他們都應該依賴于抽象喧半。
B.抽象不應該依賴于具體實現奴迅,具體實現應該依賴于抽象。
通俗一點:說白了挺据,依賴于抽象取具,不依賴于具體實現。
指導子類實現功能細節(jié)
接口隔離原則
全稱:Interface Segregation Principle
縮寫:ISP
定義:客戶端不應該依賴于它不需要的接口扁耐,一個類對另一個類的依賴應該建立在最小的接口上暇检。
總結:將非常龐大、臃腫的接口拆分成更小的更加具體的接口
迪米特法則 (最少知識原則)
全稱:Law of Demeter(Least Knowledge Principle)
縮寫:LKP
定義:一個對象應該對其他的對象有最小的了解
總結