單一職責原則編程
里氏替換原則設計模式
依賴倒置原則緩存
接口隔離原則網絡
迪米特原則框架
開閉原則函數
概念:對功能進行分類,代碼進行解耦測試
栗子:一個網絡請求框架大體分爲:請求類,緩存類,配置類;不能把這三個功能混合在一塊兒,必須分紅三個類分別去實現不一樣的功能設計
概念:在繼承類時,除了擴展一些新的功能以外,儘可能不要刪除或者修改對父類方法的引用,也儘可能不要重載父類的方法對象
栗子:每一個類都是Object的子類,Object類中有一個toString()的方法,假如子類重寫該方法而且返回null,這個子類的下一級繼承返回的都是null,那麼在不一樣開發人員維護時可能考慮不到這個問題,而且極可能會致使程序崩潰繼承
概念:高層模塊不依賴低層次模塊的細節,高層次就是不依賴細節而是依賴抽象(不依賴具體的類,而是依賴於接口)
栗子:某個網絡框架爲了知足不一樣開發者的需求,即能使用高效的OkHttp框架,也可使用原生的API。正所謂蘿蔔白菜各有所愛,那麼是如何進行切換的呢,這個時候須要面向接口編程思想了,把一些網絡請求的方法封裝成一個接口,而後分別建立OkHttp和原生API的接口實現類,固然也方便後續其餘開發人員進行擴展其餘網絡框架的應用
概念:在定義接口方法時應該合理化,儘可能追求簡單最小,避免接口臃腫
栗子:在實際開發中,每每爲了節省時間,可能會將多個功能的方法抽成一個接口,其實這設計理念不正確的,這樣會使接口處於臃腫的狀態,這時就須要合理的拆分接口中的方法,另外抽取成一個獨立的接口,避免原有的接口臃腫致使代碼理解困難
概念:一個對象應該對其餘對象有最少的瞭解;一個類應該對本身須要耦合或調用的類知道得最少,類的內部如何實現、如何複雜都與調用者或者依賴者不要緊,調用者或者依賴者只須要知道他須要的方法便可,其餘的一律不關心。類與類之間的關係越密切,耦合度越大,當一個類發生改變時,對另外一個類的影響也越大。只與直接的朋友通訊。每一個對象都必然會與其餘對象有耦合關係,兩個對象之間的耦合就成爲朋友關係,這種關係的類型有不少,例如組合、聚合、依賴等。
栗子:通常在使用框架的時候,框架的開發者會抽出一個類供外部調用,而這個主要的類像是一箇中介同樣去調用框架裏面的其餘類,偏偏框架裏面其餘類通常都是不可訪問(調用)的,這個框架就遵照了迪米特原則,其餘開發人員只關心調用的方法,並不須要關心功能具體如何實現
概念:類、模塊和函數應該對擴展開放,對修改關閉
栗子:在軟件的生命週期內,由於變化、升級和維護等緣由須要對軟件原有代碼進行修改時,可能會給舊代碼中引入錯誤,也可能會使咱們不得不對整個功能進行重構,而且須要原有代碼通過從新測試,整個流程對開發週期影響很大,這個時候就須要開閉原則來解決這種問題
單一職責原則告訴咱們實現類要職責單一
里氏替換原則告訴咱們不要破壞繼承體系
依賴倒置原則告訴咱們要面向接口編程
接口隔離原則告訴咱們在設計接口的時候要精簡單一
迪米特原則告訴咱們要下降耦合
開閉原則是總綱,告訴咱們要對擴展開放,對修改關閉
若是不夠準確,請幫忙指出
這篇文章要是對你有幫助的話,記得點個贊