設計模式之美十六:介面隔離原則有哪三種應用?介面該如何理解

2020年02月04日11:48:21 科技 1633

王爭《設計模式之美》筆記

如何理解「介面隔離原則」?

介面隔離原則的英文翻譯是「 Interface Segregation Principle」,縮寫為ISP。意思是:客戶端不應該強迫依賴它不需要的介面。其中的「客戶端」,可以理解為介面的調用者或者使用者。

理解介面隔離原則的關鍵,就是理解其中的「介面」二字。在這條原則中,我們可以把「介面」理解為下面三種東西:

  • 一組 API 介面集合
  • 單個 API 介面或函數
  • OOP 中的介面概念

把「介面」理解為一組 API 介面集合

UserService中添加刪除用戶功能時,新加RestrictedUserService給特定用戶使用。

把「介面」理解為單個 API 介面或函數

把「介面」理解為 OOP 中的介面概念

通過RedisConfig、 MysqlConfig、KafkaConfig的熱更新和在頁面上展示,說明了符合介面隔離原則的代碼:

1.設計思路更加靈活、易擴展、易復用

2.不符合的設計思路在代碼實現上做了一些無用功

重點回顧

1. 如何理解「介面隔離原則」?

理解「介面隔離原則」的重點是理解其中的「介面」二字。這裡有三種不同的理解。

如果把「介面」理解為一組介面集合,可以是某個微服務的介面,也可以是某個類庫的介面等。如果部分介面只被部分調用者使用,我們就需要將這部分介面隔離出來,單獨給這部分調用者使用,而不強迫其他調用者也依賴這部分不會被用到的介面。

如果把「介面」理解為單個 API 介面或函數,部分調用者只需要函數中的部分功能,那我 們就需要把函數拆分成粒度更細的多個函數,讓調用者只依賴它需要的那個細粒度函數。

如果把「介面」理解為 OOP 中的介面,也可以理解為面向對象編程語言中的介面語法。那介面的設計要盡量單一,不要讓介面的實現類和調用者,依賴不需要的介面函數。

2. 介面隔離原則與單一職責原則的區別

單一職責原則針對的是模塊、類、介面的設計。介面隔離原則相對於單一職責原則,一方面更側重於介面的設計,另一方面它的思考角度也是不同的。介面隔離原則提供了一種判斷介面的職責是否單一的標準:通過調用者如何使用介面來間接地判定。如果調用者只使用部分介面或介面的部分功能,那介面的設計就不夠職責單一。

參考:https://time.geekbang.org/column/intro/250?code=gLit0LpsKZQ6vOVqS1htGOSAKYLCYeMuklw2dwajH-4%3D

科技分類資訊推薦

探秘vivo影像之美,與X系列技術溝通會共同見證卓越藍圖 - 天天要聞

探秘vivo影像之美,與X系列技術溝通會共同見證卓越藍圖

前段時間的vivo X系列新品發布讓我們記憶深刻,而剛剛結束結束的「影像新藍圖X系列技術溝通會」也十分精彩,這次溝通會不僅告訴了大家vivo在影像領域的最新成果,也讓粉絲們對vivo影像背後的故事有更多了解,在vivo影像的發展歷程中可以分成兩方面,一方面,vivo通過自主研發,不斷提升自身的影像技術實力,另一方面,vivo...
華為再次亮劍,鴻蒙系統亮點多多 - 天天要聞

華為再次亮劍,鴻蒙系統亮點多多

5月15日,華為夏季全場景新品發布會簡直是一場視覺與科技的盛宴,看得我熱血沸騰!不得不說,華為這次真的是大招頻出,新品多到讓人眼花繚亂!先說說那個華為MatePad 11.5 」 S吧,一亮相就讓人眼前一亮!它的設計簡約而不失時尚,屏幕清晰得讓人彷彿置身其中。
【新機】升級了個寂寞?藍廠新機發布 - 天天要聞

【新機】升級了個寂寞?藍廠新機發布

昨天晚上藍廠發布了新機iQOO Neo9s Pro,機子採用了6.78英寸1.5K 8T LTPO直面屏,支持144Hz刷新率。搭載天璣9300+,前置1600萬像素,後置IMX920主攝+5000萬超廣角。電池容量5160mAh,支持120W快充。新增白色版本,用上了白色玻璃後蓋,顏值確實提升了不少。不過還是塑料中框+短焦指紋。12+256GB 2699元
AI Agent在哪些行業領域會產生影響? - 天天要聞

AI Agent在哪些行業領域會產生影響?

在如今飛速前進的科技浪潮中,人工智慧(AI)技術的創新正以前所未有的速度重塑我們的生活和工作的每一個角落。在這一浪潮中,Agent AI智能體以其卓越的能力脫穎而出,它通過模擬人類智能行為,能夠勝任一系列複雜任務,並在多個領域展現出了其無法替代的價值。
續航王者vivo Y200系列掀起購機狂潮,618購機可享多重福利優惠 - 天天要聞

續航王者vivo Y200系列掀起購機狂潮,618購機可享多重福利優惠

智能手機的選擇五花八門,但有一條賽道被vivo獨佔,那就是長續航。剛剛發布的vivo Y200系列憑藉其超長的續航能力和輕薄的設計,一經推出便受到廣大用戶的關注和好評,徹底改變了行業續航的基準線。如今Y200系列新品已正式開啟預售及首銷,期間購機可享多重福利優惠。
【現場】人工關節集采續約開標:企業代表「不緊張」,多家報價壓線進 - 天天要聞

【現場】人工關節集采續約開標:企業代表「不緊張」,多家報價壓線進

界面新聞記者 | 唐卓雅界面新聞編輯 | 謝欣5月21日,國家組織人工關節集中帶量採購協議期滿接續採購(下稱「人工關節續采」)在天津東麗湖恆大酒店國際會議中心開標。此次續標的產品範圍與2021年的首輪集采相同,包括髖關節(陶瓷-陶瓷類、陶瓷-聚乙烯類和合金-聚乙烯類)和膝關節,採購周期由兩年延長為三年,採購需求量為...
產品經理談一談:水果店應該怎麼開 - 天天要聞

產品經理談一談:水果店應該怎麼開

這幾年,不少人都計劃著整個副業,或者以後被畢業了去做什麼。有準備擺攤的,有準備開咖啡店開書店的,也有人準備開水果店的。只是工作這麼久了,相關的經驗能否平移過去?如果用產品思維來看,我們做一個店面,需要怎麼做呢?