設(shè)計(jì)模式之00:面向?qū)ο蟮牧笤瓌t

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

    就一個(gè)類而言,應(yīng)該僅有一個(gè)引起其變化的原因。
    ??一個(gè)類中應(yīng)該是一組相關(guān)性很高的函數(shù)、數(shù)據(jù)的封裝。

  2. 開閉原則(OCP:Open Close Principle)

    讓程序更穩(wěn)定、靈活。
    ??軟件中的對(duì)象(類、模塊、函數(shù)等)對(duì)于擴(kuò)展是開放的,對(duì)于修改是封閉的,即:當(dāng)軟件發(fā)生變化時(shí),盡量使用擴(kuò)展來實(shí)現(xiàn)變化,而不是修改。

  3. 里氏替換原則(LSP:Liskov Substitution Principle)

    構(gòu)建擴(kuò)展性更好的軟件。
    ??只要父類能出現(xiàn)的地方,子類就能夠出現(xiàn),而且替換為子類不會(huì)引發(fā)任何錯(cuò)誤或異常,反之則不行。
    ??如下:window.show(view),view可替換為button或textView

public class Window {
        public void show(View view) {
            //...
        }
    }

    /**
     * 父類
     */
    public abstract class View {
        //...
    }

    /**
     * 子類Button
     */
    public class Button extends View {
        //...
    }

    /**
     * 子類Button
     */
    public class TextView extends View {
        //...
    }

繼承的優(yōu)點(diǎn):代碼重用、擴(kuò)展
???缺點(diǎn):冗余、侵入(子類入侵父類的屬性與方法)

  1. 依賴倒置原則(DIP:Dependence Inversion Principle)

    解耦,使代碼更多變。
    ??依賴通過抽象(接口、抽象類)產(chǎn)生,實(shí)現(xiàn)類之間不直接依賴。

  2. 接口隔離原則(ISP:Interface Segregation Principle)

    接口應(yīng)該盡量原子化,依賴時(shí)候只依賴所需要的接口。

  3. 迪米特原則(LOD:Law Of Demeter)

    更好的擴(kuò)展性。
    ??一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象有盡量少的了解,類與類之間關(guān)系越密切,耦合度就越大。
    ??比如:Activity之間的傳參,Activity1啟動(dòng)Activity2,只需傳給Activity2所需的參數(shù)即可,盡量避免傳對(duì)象的情況。

總結(jié)

軟件開發(fā),最難的不是完成開發(fā),而是后續(xù)的維護(hù)、升級(jí)中,依然讓代碼簡潔高效。多么痛的領(lǐng)悟????

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

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

  • 設(shè)計(jì)模式六大原則 設(shè)計(jì)模式六大原則(1):單一職責(zé)原則 定義:不要存在多于一個(gè)導(dǎo)致類變更的原因。通俗的說,即一個(gè)類...
    viva158閱讀 828評(píng)論 0 1
  • 記在前面:這個(gè)《設(shè)計(jì)模式》系列的文章,想了很久才決定寫的,一是還是本人的原則,只有通過自己表達(dá)出來的東西,才是真正...
    l_sivan閱讀 716評(píng)論 6 17
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,711評(píng)論 19 139
  • 整理總結(jié)自《設(shè)計(jì)模式之禪》一書 1 單一職責(zé)原則 Single Responsibility Principle ...
    笑哥哥閱讀 532評(píng)論 0 1
  • 猴子很絕望,它沒有逃跑,兀自神傷。它對(duì)不起了太多同類,它覺得如果自己不死在這里,那就是一個(gè)十足的叛徒。它毀了同類,...
    水邊漫步的娃Christine閱讀 631評(píng)論 1 1

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