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

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

科技分類資訊推薦

每天車聞:2025年新能源汽車下鄉活動 - 天天要聞

每天車聞:2025年新能源汽車下鄉活動

根據合作備忘錄,基於大眾汽車集團全新CMP平台的兩款新能源車將於2027年在一汽-大眾天津分公司投產。全面投產後,將強化一汽-大眾在新能源汽車市場的競爭力,同時有力推動天津市新能源和智能網聯汽車產業邁向高質量發展新台階。
行業|阿維塔新能源市場的成功突圍與未來發展 - 天天要聞

行業|阿維塔新能源市場的成功突圍與未來發展

6 月 7 日,第二十七屆重慶國際汽車展覽會開幕,高端智能電動汽車品牌阿維塔攜全系陣容亮相,宣布品牌累計銷量突破 15 萬輛,產品平均售價超 27 萬元,展現其在新能源市場強勁發展勢頭與中國品牌在高端市場的成功突圍。
東風汽車全方位穩健增長,加速新能源與智能化轉型 - 天天要聞

東風汽車全方位穩健增長,加速新能源與智能化轉型

近日,東風汽車公布了其5月份的銷量數據,顯示公司在市場中的穩健表現和強勁的發展勢頭。數據顯示,東風汽車5月銷售(零售)達到20.6萬輛,同比增長1.3%。其中,新能源汽車銷售表現尤為突出,達到8.1萬輛,同比增長26.5%。這一系列數據不僅彰顯了東風汽車在新能
Uzi榮登英雄聯盟名人堂,梅賽德斯-賓士致敬電競傳奇 - 天天要聞

Uzi榮登英雄聯盟名人堂,梅賽德斯-賓士致敬電競傳奇

6月6日,2025年「英雄聯盟名人堂入選典禮」在上海成功舉行,標誌著中國電競傳奇選手簡自豪(下稱「Uzi」)正式成為中國大陸賽區首位、全球第二位入選「英雄聯盟名人堂」的職業電競人。這一里程碑式的成就不僅彰顯了Uzi在電競領域的卓越貢獻和非凡實力,也為中國電競史
35.99萬元起售,傳祺嚮往M8乾崑在西南地區正式上市 - 天天要聞

35.99萬元起售,傳祺嚮往M8乾崑在西南地區正式上市

2025重慶車展,廣汽傳祺、華為乾崑、寧德時代三方合作的最新成果——傳祺嚮往M8乾崑在西南地區正式上市,售價為35.99萬-40.99萬元。作為集東方美學與智能科技於一身的奢享旗艦MPV,M8乾崑搭載華為乾崑智駕與鴻蒙座艙,配備百萬級奢享座椅及全球獨創720°
比亞迪王傳福:用實力說話,不拉踩同行 - 天天要聞

比亞迪王傳福:用實力說話,不拉踩同行

今天刷到王傳福在2024年度股東大會上的發言,不拉踩同行是比亞迪的企業原則,這點確實需要國內廠商學習和貫徹。其實大家也能看到,這兩年新能源汽車行業除了嚴重內卷之外,就是各種拉踩行為了,有的廠商各種手段齊上,恨不得直接把你干翻。
關鍵技術全系標配  從海豹06EV看比亞迪「大牌」風範 - 天天要聞

關鍵技術全系標配 從海豹06EV看比亞迪「大牌」風範

2025重慶國際車展開幕第一天(6月7日),比亞迪海洋網海豹06EV迎來了全新上市,作為純電動轎跑新車,3款配置的官方售價僅為10.98萬至12.98萬元。同時還可享包括致臻煥新、致臻互聯、致臻無憂、致臻延保及致臻充電等多重禮遇。
山城方盒子特惠,寶駿悅也 Plus 2026 款 7.68 萬起售 - 天天要聞

山城方盒子特惠,寶駿悅也 Plus 2026 款 7.68 萬起售

山城重慶,潮玩正當時。2025 年重慶車展不僅是車企競技的舞台,更是消費者探尋高性價比車型的絕佳契機。在這場萬眾矚目的盛會上,寶駿汽車以一場充滿活力的區域上市發布會,正式揭開了悅也 Plus 2026 款的神秘面紗。這款主打 「全能潮玩」 定位的純電 SUV,