Android的設(shè)計模式-設(shè)計模式的六大原則

前言

Android的設(shè)計模式系列文章介紹:歡迎關(guān)注,持續(xù)更新中:

Android的設(shè)計模式-設(shè)計模式的六大原則
一句話總結(jié)23種設(shè)計模式則
創(chuàng)建型模式:
Android的設(shè)計模式-單例模式
Android的設(shè)計模式-建造者模式
Android的設(shè)計模式-工廠方法模式
Android的設(shè)計模式-簡單工廠模式
Android的設(shè)計模式-抽象工廠模式
Android的設(shè)計模式-原型模式
行為型模式:
Android的設(shè)計模式-策略模式
Android的設(shè)計模式-狀態(tài)模式
Android的設(shè)計模式-責(zé)任鏈模式
Android的設(shè)計模式-觀察者模式
Android的設(shè)計模式-模板方法模式
Android的設(shè)計模式-迭代器模式
Android的設(shè)計模式-備忘錄模式
Android的設(shè)計模式-訪問者模式
Android的設(shè)計模式-中介者模式
Android的設(shè)計模式-解釋器模式
Android的設(shè)計模式-命令模式
結(jié)構(gòu)型模式:
Android的設(shè)計模式-代理模式
Android的設(shè)計模式-組合模式
Android的設(shè)計模式-適配器模式
Android的設(shè)計模式-裝飾者模式
Android的設(shè)計模式-享元模式
Android的設(shè)計模式-外觀模式
Android的設(shè)計模式-橋接模式

1.單一職責(zé)原則(Single Responsibility Principle, SRP)

定義:一個類應(yīng)只包含單一的職責(zé)。

  • 一個類職責(zé)過大的話,首先引起的問題就是這個類比較大,顯得過于臃腫,同時其復(fù)用性是比較差的。
  • 其次就是如果修改某個職責(zé),有可能引起另一個職責(zé)發(fā)生錯誤。這是我們極力所避免的,因此設(shè)計一個類時我們應(yīng)當去遵循單一職責(zé)原則。

2.開放封閉原則(Open - ClosedPrinciple ,OCP)

定義:一個模塊、類、函數(shù)應(yīng)當是對修改關(guān)閉,擴展開放。

  • 修改原有的代碼可能會導(dǎo)致原本正常的功能出現(xiàn)問題。
  • 因此,當需求有變化時,最好是通過擴展來實現(xiàn),增加新的方法滿足需求,而不是去修改原有代碼。

3.里氏代換原則( Liskov Substitution Principle ,LSP )

定義:使用父類的地方能夠使用子類來替換,反過來,則不行。

  • 使用子類對象去替換父類對象,程序?qū)⒉粫a(chǎn)生錯誤
  • 因此在程序中盡量使用基類類型來對對象進行定義,而在運行時再確定其子類類型,用子類對象來替換父類對象。
  • 需要注意的是:
    • 子類的所有方法必須在父類中聲明,或子類必須實現(xiàn)父類中聲明的所有方法。如果一個方法只存在子類中,沒有在父類中聲明,則無法在以父類定義的對象中使用該方法。
    • 父類應(yīng)當被盡量設(shè)計為抽象類或者接口,讓子類繼承父類或?qū)崿F(xiàn)父接口,并實現(xiàn)在父類中聲明的方法,運行時,子類實例替換父類實例,我們可以很方便地擴展系統(tǒng)的功能,同時無須修改原有子類的代碼,增加新的功能可以通過增加一個新的子類來實現(xiàn)

4.依賴倒轉(zhuǎn)原則( Dependence Inversion Principle ,DIP )

定義:抽象不應(yīng)該依賴于細節(jié),細節(jié)應(yīng)當依賴于抽象。

  • 即要面向接口編程,而不是面向具體實現(xiàn)去編程。
  • 高層模塊不應(yīng)該依賴低層模塊,應(yīng)該去依賴抽象。

5.接口隔離法則(Interface Segregation Principle,ISL)

定義:一個類對另一個類的依賴應(yīng)該建立在最小的接口上。

  • 一個類不應(yīng)該依賴他不需要的接口。
  • 接口的粒度要盡可能小,如果一個接口的方法過多,可以拆成多個接口。

6.迪米特法則(Law of Demeter, LoD)

定義:一個類盡量不要與其他類發(fā)生關(guān)系

  • 一個類對其他類知道的越少,耦合越小。
  • 當修改一個類時,其他類的影響就越小,發(fā)生錯誤的可能性就越小。

相關(guān)文章閱讀
Android的設(shè)計模式-設(shè)計模式的六大原則
一句話總結(jié)23種設(shè)計模式則
創(chuàng)建型模式:
Android的設(shè)計模式-單例模式
Android的設(shè)計模式-建造者模式
Android的設(shè)計模式-工廠方法模式
Android的設(shè)計模式-簡單工廠模式
Android的設(shè)計模式-抽象工廠模式
Android的設(shè)計模式-原型模式
行為型模式:
Android的設(shè)計模式-策略模式
Android的設(shè)計模式-狀態(tài)模式
Android的設(shè)計模式-責(zé)任鏈模式
Android的設(shè)計模式-觀察者模式
Android的設(shè)計模式-模板方法模式
Android的設(shè)計模式-迭代器模式
Android的設(shè)計模式-備忘錄模式
Android的設(shè)計模式-訪問者模式
Android的設(shè)計模式-中介者模式
Android的設(shè)計模式-解釋器模式
Android的設(shè)計模式-命令模式
結(jié)構(gòu)型模式:
Android的設(shè)計模式-代理模式
Android的設(shè)計模式-組合模式
Android的設(shè)計模式-適配器模式
Android的設(shè)計模式-裝飾者模式
Android的設(shè)計模式-享元模式
Android的設(shè)計模式-外觀模式
Android的設(shè)計模式-橋接模式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容