七大设计原理
1、開閉原則
? ?其他六大設(shè)計(jì)原則的基礎(chǔ)。。。
? ?對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。
? 開閉原則是所有原則的基礎(chǔ),就是設(shè)計(jì)程序時(shí)盡量做到新增模塊而不是在原有的基礎(chǔ)上進(jìn)行修改。
2、迪米特法則
只與直接的盆友通信
一個(gè)對(duì)象之中要依賴另一個(gè)對(duì)象,那這個(gè)對(duì)象和所依賴的對(duì)象就是盆友。
直接的盆友有三種
*成員變量
*方法的參數(shù)類型
*方法的返回值類型
?迪米特法則就是方法內(nèi)部的依賴最好是直接的盆友,但沒必要為這個(gè)法則而進(jìn)行程序的編寫,還是要宏觀考慮代碼的復(fù)雜性。
3、里式替換原則
子類可以擴(kuò)展父類的功能但子類不可以修改父類的功能。
子類可以實(shí)現(xiàn)父類的抽象方法,但是子類不能覆蓋父類的抽象方法。
子類中可以擴(kuò)展自己的方法。
? 里式替換原則并非是讓我們盡量避免使用繼承,而是給繼承制定了規(guī)則,就是子類盡量不要重寫父類的方法。
4、依賴倒置原則
注重面向接口的編程,設(shè)計(jì)松耦合的程序
抽象:接口,抽象類
細(xì)節(jié):實(shí)現(xiàn)類
依賴關(guān)系的三種傳遞方式 (1)、通過接口傳遞。(2)、通過構(gòu)造方法傳遞。(3)、通過set方法傳遞。
? 依賴倒置原則就是讓我們?cè)谠O(shè)計(jì)程序的時(shí)候,要注重接口的設(shè)計(jì),設(shè)計(jì)抽象類,通過實(shí)體類的實(shí)現(xiàn),在調(diào)用同一個(gè)接口的過程中來實(shí)現(xiàn)不同的功能,提高代碼的低耦合性。
5、接口隔離原則
類間的依賴關(guān)系應(yīng)該建立在最小的接口上(一個(gè)接口實(shí)現(xiàn)對(duì)應(yīng)的功能)
接口隔離原則就是對(duì)接口的拆分,避免不必要的方法被實(shí)現(xiàn)類給實(shí)現(xiàn)。
6、單一職責(zé)原則
一個(gè)類只有一個(gè)職責(zé)(類級(jí)別的單一職責(zé)原則/方法級(jí)別的單一職責(zé)原則)
合理的職責(zé)分解
? ?單一職責(zé)原則就是在實(shí)際類或者方法時(shí),盡量細(xì)粒化程序,不要寫臃腫的代碼,盡量實(shí)現(xiàn)類級(jí)別的單一職責(zé)原則。
單一職責(zé)原則與接口隔離原則的
相同點(diǎn):都是對(duì)系統(tǒng)進(jìn)行拆分,要求更小的顆粒度,希望減少耦合。
不同點(diǎn):審視的角度不同
? ? ? ? ? ?單一職責(zé)原則是類與接口的職責(zé)單一,要注重內(nèi)容的設(shè)計(jì)。
?? ? ? ? ? 接口隔離原則是要求我們盡量使用多個(gè)接口,注重接口的設(shè)計(jì)。
在使用接口隔離原則進(jìn)行接口的拆分時(shí)要遵循單一職責(zé)原則。
7、合成復(fù)用原則
盡量使用組合/聚合的方式而不是繼承
? 合成復(fù)用原則有些叫六大原則 ,有些叫七大原則,六大原則不包含合成復(fù)用原則,他的意思是類與類之間的依賴最好用調(diào)用或者參數(shù)傳參的方式調(diào)用另一個(gè)類的方法,而不是使用繼承。
設(shè)計(jì)原則的核心思想
1、找出應(yīng)用中可能需要變化之處,獨(dú)立出來,不要和不需要變化的代碼混在一起。
2、針對(duì)接口編程,而不是針對(duì)實(shí)現(xiàn)編程。
3、為了交互對(duì)象的松耦合設(shè)計(jì)而努力。
遵循設(shè)計(jì)原則就是為了讓程序:高內(nèi)聚,低耦合
總結(jié)
- 上一篇: 05-中央处理器
- 下一篇: PySpark机器学习 ML