志宇-设计模式
設(shè)計模式
- 源碼
- 七個設(shè)計原則
- 一、單一職責(zé)原則
- 二、里氏替換原則
- 三、依賴倒置原則
- 四、接口隔離原則
- 五、迪米特法則
- 六、開閉原則(最核心)
- 七、合成復(fù)用原則
- 一、設(shè)計模式的分類
- 狀態(tài)模式
- 場景
- 設(shè)計方案
源碼
七個設(shè)計原則
一、單一職責(zé)原則
思想
一個類 作一類事情 (不然高內(nèi)聚)
二、里氏替換原則
思想
盡量不要重寫父類中已經(jīng)存在的方法
三、依賴倒置原則
思想
將一個對象(類)傳入到另一個類中,要通過這個類的接口或者抽象進(jìn)行接收(當(dāng)添加一個功能時直接再寫一個接口實現(xiàn)類傳入即可)
代碼
四、接口隔離原則
思想
實現(xiàn)接口,要求實現(xiàn)的方法都有用,不要實現(xiàn)多余的方法 (將接口拆分,然后分別實現(xiàn))
五、迪米特法則
與本類為朋友關(guān)系的類為:
1.本類成員變量
2.本類方法中傳入?yún)?shù)
3.本類方法中返回參數(shù)
思想
如果在本類中出現(xiàn)非朋友關(guān)系的類,那么就違反了迪米特法則
(相當(dāng)于 將不是本類的代碼寫在了本類中,目的不要將自己的代碼暴漏給別的類)
六、開閉原則(最核心)
思想
當(dāng)開發(fā)好框架,當(dāng)有新需求時 只用寫幾個實現(xiàn)類即可完成需求(通過擴展實現(xiàn)需求)
代碼
七、合成復(fù)用原則
思想
盡量使用組合/聚合,少用繼承 (因java單繼承,繼承后擴展性降低)
替換繼承的方法
1.通過子類的構(gòu)造方法將父類對象傳遞給子類
2.通過子類的set方法將父類對象傳遞給子類
3.在子類中創(chuàng)建父類對象,然后子類調(diào)用父類中的方法
一、設(shè)計模式的分類
總體來說設(shè)計模式分為三大類:
創(chuàng)建型模式(創(chuàng)建對象上使用的模型),共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結(jié)構(gòu)型模式(代碼結(jié)構(gòu)的模型),共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式(方法的模型),共十一種:策略模式、模板方法模式、觀察者模式、迭代器模式、責(zé)任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪問者模式、中介者模式、解釋器模式。
狀態(tài)模式
簡單來說:就是根據(jù)不同狀態(tài)(參數(shù)),會有不同的行為(方法)
從而減少 if else 的使用
場景
有一個借貸平臺,它要給別人貸款
貸款有一系列流程,在每個流程都有不同的狀態(tài)(生成訂單、審核、發(fā)布、代付款、付款、已付款、完結(jié)) 這時候就要用到狀態(tài)模式的思想了,不然寫的代碼會很亂同時不方便維護(hù)
設(shè)計方案
總結(jié)
- 上一篇: 志宇-mysql优化
- 下一篇: ASP.NET Core 5 如何创建区