前言
Android的設(shè)計(jì)模式系列文章介紹:歡迎關(guān)注矗漾,持續(xù)更新中:
Android的設(shè)計(jì)模式-設(shè)計(jì)模式的六大原則
一句話總結(jié)23種設(shè)計(jì)模式則
創(chuàng)建型模式:
Android的設(shè)計(jì)模式-單例模式
Android的設(shè)計(jì)模式-建造者模式
Android的設(shè)計(jì)模式-工廠方法模式
Android的設(shè)計(jì)模式-簡(jiǎn)單工廠模式
Android的設(shè)計(jì)模式-抽象工廠模式
Android的設(shè)計(jì)模式-原型模式
行為型模式:
Android的設(shè)計(jì)模式-策略模式
Android的設(shè)計(jì)模式-狀態(tài)模式
Android的設(shè)計(jì)模式-責(zé)任鏈模式
Android的設(shè)計(jì)模式-觀察者模式
Android的設(shè)計(jì)模式-模板方法模式
Android的設(shè)計(jì)模式-迭代器模式
Android的設(shè)計(jì)模式-備忘錄模式
Android的設(shè)計(jì)模式-訪問者模式
Android的設(shè)計(jì)模式-中介者模式
Android的設(shè)計(jì)模式-解釋器模式
Android的設(shè)計(jì)模式-命令模式
結(jié)構(gòu)型模式:
Android的設(shè)計(jì)模式-代理模式
Android的設(shè)計(jì)模式-組合模式
Android的設(shè)計(jì)模式-適配器模式
Android的設(shè)計(jì)模式-裝飾者模式
Android的設(shè)計(jì)模式-享元模式
Android的設(shè)計(jì)模式-外觀模式
Android的設(shè)計(jì)模式-橋接模式
1.單一職責(zé)原則(Single Responsibility Principle, SRP)
定義:一個(gè)類應(yīng)只包含單一的職責(zé)凌那。
- 一個(gè)類職責(zé)過大的話,首先引起的問題就是這個(gè)類比較大,顯得過于臃腫嗦随,同時(shí)其復(fù)用性是比較差的。
- 其次就是如果修改某個(gè)職責(zé),有可能引起另一個(gè)職責(zé)發(fā)生錯(cuò)誤血筑。這是我們極力所避免的,因此設(shè)計(jì)一個(gè)類時(shí)我們應(yīng)當(dāng)去遵循單一職責(zé)原則营搅。
2.開放封閉原則(Open - ClosedPrinciple ,OCP)
定義:一個(gè)模塊云挟、類、函數(shù)應(yīng)當(dāng)是對(duì)修改關(guān)閉转质,擴(kuò)展開放园欣。
- 修改原有的代碼可能會(huì)導(dǎo)致原本正常的功能出現(xiàn)問題。
- 因此休蟹,當(dāng)需求有變化時(shí)沸枯,最好是通過擴(kuò)展來實(shí)現(xiàn),增加新的方法滿足需求赂弓,而不是去修改原有代碼绑榴。
3.里氏代換原則( Liskov Substitution Principle ,LSP )
定義:使用父類的地方能夠使用子類來替換,反過來盈魁,則不行翔怎。
- 使用子類對(duì)象去替換父類對(duì)象,程序?qū)⒉粫?huì)產(chǎn)生錯(cuò)誤
- 因此在程序中盡量使用基類類型來對(duì)對(duì)象進(jìn)行定義杨耙,而在運(yùn)行時(shí)再確定其子類類型赤套,用子類對(duì)象來替換父類對(duì)象。
- 需要注意的是:
- 子類的所有方法必須在父類中聲明珊膜,或子類必須實(shí)現(xiàn)父類中聲明的所有方法容握。如果一個(gè)方法只存在子類中,沒有在父類中聲明车柠,則無法在以父類定義的對(duì)象中使用該方法剔氏。
- 父類應(yīng)當(dāng)被盡量設(shè)計(jì)為抽象類或者接口塑猖,讓子類繼承父類或?qū)崿F(xiàn)父接口,并實(shí)現(xiàn)在父類中聲明的方法谈跛,運(yùn)行時(shí)羊苟,子類實(shí)例替換父類實(shí)例,我們可以很方便地?cái)U(kuò)展系統(tǒng)的功能币旧,同時(shí)無須修改原有子類的代碼践险,增加新的功能可以通過增加一個(gè)新的子類來實(shí)現(xiàn)
4.依賴倒轉(zhuǎn)原則( Dependence Inversion Principle ,DIP )
定義:抽象不應(yīng)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)當(dāng)依賴于抽象吹菱。
- 即要面向接口編程巍虫,而不是面向具體實(shí)現(xiàn)去編程。
- 高層模塊不應(yīng)該依賴低層模塊鳍刷,應(yīng)該去依賴抽象占遥。
5.接口隔離法則(Interface Segregation Principle,ISL)
定義:一個(gè)類對(duì)另一個(gè)類的依賴應(yīng)該建立在最小的接口上输瓜。
- 一個(gè)類不應(yīng)該依賴他不需要的接口瓦胎。
- 接口的粒度要盡可能小,如果一個(gè)接口的方法過多尤揣,可以拆成多個(gè)接口搔啊。
6.迪米特法則(Law of Demeter, LoD)
定義:一個(gè)類盡量不要與其他類發(fā)生關(guān)系
- 一個(gè)類對(duì)其他類知道的越少,耦合越小北戏。
- 當(dāng)修改一個(gè)類時(shí)负芋,其他類的影響就越小,發(fā)生錯(cuò)誤的可能性就越小嗜愈。
相關(guān)文章閱讀
Android的設(shè)計(jì)模式-設(shè)計(jì)模式的六大原則
一句話總結(jié)23種設(shè)計(jì)模式則
創(chuàng)建型模式:
Android的設(shè)計(jì)模式-單例模式
Android的設(shè)計(jì)模式-建造者模式
Android的設(shè)計(jì)模式-工廠方法模式
Android的設(shè)計(jì)模式-簡(jiǎn)單工廠模式
Android的設(shè)計(jì)模式-抽象工廠模式
Android的設(shè)計(jì)模式-原型模式
行為型模式:
Android的設(shè)計(jì)模式-策略模式
Android的設(shè)計(jì)模式-狀態(tài)模式
Android的設(shè)計(jì)模式-責(zé)任鏈模式
Android的設(shè)計(jì)模式-觀察者模式
Android的設(shè)計(jì)模式-模板方法模式
Android的設(shè)計(jì)模式-迭代器模式
Android的設(shè)計(jì)模式-備忘錄模式
Android的設(shè)計(jì)模式-訪問者模式
Android的設(shè)計(jì)模式-中介者模式
Android的設(shè)計(jì)模式-解釋器模式
Android的設(shè)計(jì)模式-命令模式
結(jié)構(gòu)型模式:
Android的設(shè)計(jì)模式-代理模式
Android的設(shè)計(jì)模式-組合模式
Android的設(shè)計(jì)模式-適配器模式
Android的設(shè)計(jì)模式-裝飾者模式
Android的設(shè)計(jì)模式-享元模式
Android的設(shè)計(jì)模式-外觀模式
Android的設(shè)計(jì)模式-橋接模式