接口隔离原则_设计模式之七大设计原则(上)
這是雷總20多年前寫的匯編程序,像詩一樣優(yōu)雅
而中國(guó)詩詞講究平仄、押韻、對(duì)仗等一系列的規(guī)則原則,
那么想要寫出像詩一樣優(yōu)雅的程序你不得不知的?--?設(shè)計(jì)模式之七大原則:
1.開閉原則:對(duì)修改關(guān)閉,對(duì)擴(kuò)展開放。
2.單一職責(zé)原則:每個(gè)類、方法只負(fù)責(zé)一個(gè)職責(zé)或功能。
3.接口隔離原則:接口設(shè)計(jì)要精簡(jiǎn)單一。
4.里氏替換原則:子類可以擴(kuò)展父類的功能,盡量不修改父類原有的功能。
5.依賴倒置原則:高層不依賴底層,兩者都該依賴接口。(面向接口編程)
6.迪米特法則:也稱最少知道原則;只和你的朋友說話,不與陌生人說話。
7.合成復(fù)用原則:盡量先使用組合或聚合實(shí)現(xiàn)關(guān)聯(lián)關(guān)系,其次在考慮使用繼承關(guān)系
開閉原則
一天小A開發(fā)了某項(xiàng)功能經(jīng)過測(cè)試并上線。但有一天這項(xiàng)功能需要進(jìn)行升級(jí),此時(shí)小A 已離職,接管小A 的小B 不是在小A的源碼上進(jìn)行擴(kuò)展,而是直接拿源碼進(jìn)行修改,造成了測(cè)試需要重新測(cè)試原來已上線的功能。這樣不僅使生產(chǎn)效率降低,而且還降低了系統(tǒng)穩(wěn)定性;當(dāng)軟件需要變化時(shí),盡量通過擴(kuò)展軟件來實(shí)現(xiàn)變化,而不是通過修改已有的代碼來實(shí)現(xiàn)變化。(祖?zhèn)鞔a不能動(dòng))單一職責(zé)原則
5人組裝一臺(tái)電腦主機(jī)步驟一:將主板安裝到機(jī)箱上。步驟二:將CPU安裝到主板并加上CPU風(fēng)扇。步驟三:將內(nèi)存條、顯卡、硬盤安裝到主板上。步驟四:將電源安裝到機(jī)箱上并接入CPU、主板、顯卡。步驟五:電源線整理并封箱。前置條件:5人不會(huì)組裝電腦。崗前培訓(xùn):此時(shí)領(lǐng)導(dǎo)培訓(xùn)該五位新人,講解如何完整的組裝一臺(tái)電腦,但5位新人并沒有完全吸收領(lǐng)導(dǎo)所講解的。實(shí)操:5人單人作業(yè) pk 5人流水作業(yè)
5人單人作業(yè):每人負(fù)責(zé)完整的組裝步驟,由于缺少實(shí)操,在每個(gè)步驟上都卡殼,領(lǐng)導(dǎo)也只能給每一位新人逐步解答。5人流水作業(yè):每人只負(fù)責(zé)一個(gè)步驟,即使5人不會(huì)完整的組裝電腦,但相對(duì)單人作業(yè)模式會(huì)減少許多問題。
把每人人比作類來看,即可得出?每個(gè)類、方法只負(fù)責(zé)一個(gè)職責(zé)或功能從而降低類或方法的復(fù)雜度。從而提高程序的可讀取性。接口隔離原則
某筆記本電腦需要兩個(gè)type-c插槽,一個(gè)既能充電又能傳輸數(shù)據(jù),另一個(gè)僅數(shù)據(jù)傳輸;
此時(shí)定義一個(gè)type-c接口:
interface TypeC { ? ?//數(shù)據(jù)傳輸 ? ?public function data(); ? ?//充電 ? ?public function charge();}具有實(shí)現(xiàn)類:
//typc1class?TypeC1?implements?TypeC{????public?function?data(){ ? ? ? echo "實(shí)現(xiàn)數(shù)據(jù)傳輸"; ? ?}????public?function?charge(){ ? ? ? ?echo "實(shí)現(xiàn)充電"; ? ?}}//typc2class?TypeC2?implements?TypeC{????public?function?data(){ ? ? ? echo "實(shí)現(xiàn)數(shù)據(jù)傳輸"; ? ?}????public?function?charge(){ ? ? ? throw new \Exception("我可能會(huì)爆炸"); ? ?}}此時(shí)TypeC2并不需要實(shí)現(xiàn)充電接口。
將其修改之:
interface?Charge{ ? ?//充電 ? ?public function charge();}interface TypeC { ? ?//數(shù)據(jù)傳輸 ? ?public function data();}具體實(shí)現(xiàn)類:
class?TypeC1?implements?TypeC,Charge{????public?function?data(){ ? ? ? ?echo "實(shí)現(xiàn)數(shù)據(jù)傳輸";????}????public?function?charge(){ ? ? ? ?echo "實(shí)現(xiàn)充電"; ? ?}}class?TypeC2?implements?TypeC{????public?function?data(){ ? ? ? ?echo "實(shí)現(xiàn)數(shù)據(jù)傳輸"; ? ?}}充電接口單獨(dú)提取出來,需要實(shí)現(xiàn)充電接口的Type-c去實(shí)現(xiàn).其客戶端不應(yīng)該依賴它不需要的接口,這就是接口隔離原則。
總結(jié)
以上是生活随笔為你收集整理的接口隔离原则_设计模式之七大设计原则(上)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot启动没反应_新特性:
- 下一篇: 矩阵迹的性质_矩阵(含逆)的迹、行列式关