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

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

科技分類資訊推薦

消息稱索尼招攬前 Deviation Games 開發者組建新工作室 - 天天要聞

消息稱索尼招攬前 Deviation Games 開發者組建新工作室

IT之家 5 月 12 日消息,據領英前 Deviation Games 員工 Michael Anthony 透露,索尼 PlayStation 內部可能成立了一個新工作室,由前 Deviation Games 的員工組成。Anthony 在領英上寫道:「據我所知,許多前 Deviation Games 員工在索尼組建了自己的工作室,正在開發一個尚未公布的
新機碟中諜:vivo X100系列配置提前看 - 天天要聞

新機碟中諜:vivo X100系列配置提前看

《新機諜中諜》——欄目中「諜中諜」寓意「諜報中的諜報」,在新機發布之前,讓我們用專業的眼光、風趣幽默的文字,告訴你新機諜報中的那些真真假假,提前為你揭秘即將發布的重磅新機當中可能存在的那些新科技。5月13日,vivo X100系列將有新機發布,vivo X100s不僅延續了全能表現,還改為採用直屏,是現在少有的直屏旗艦;...
聯想王傳東:2024年,AI應用元年開啟 - 天天要聞

聯想王傳東:2024年,AI應用元年開啟

「當前基於大模型的AI應用層出不窮,並呈現爆發的態勢。2024年已經成為AI應用元年。」5月11日,聯想集團副總裁、中國區首席市場官王傳東在英特爾人工智慧創新應用大賽總決賽暨頒獎典禮上作出上述表示。(聯想集團副總裁、中國區首席市場官王傳東)當天,為期5個月的英特爾人工智慧創新應用大賽總決賽圓滿結束,共有2120支團...
傻瓜才把激光雷達裝車上,馬斯克的嘲笑,正成為現實? - 天天要聞

傻瓜才把激光雷達裝車上,馬斯克的嘲笑,正成為現實?

新能源汽車,或者說電動汽車,有一個非常重要的功能,那就是自動駕駛技術。當然,自動駕駛技術在當前也叫輔助駕駛,因為法律規定的上路商用的,只能是L2級,這種做不到雙方離開方向盤,真正要達到L3,才能算有條件自動駕駛。
創維汽車回應創始人稱躺車裡可緩解高血壓:系個人親身經歷 - 天天要聞

創維汽車回應創始人稱躺車裡可緩解高血壓:系個人親身經歷

5月12日,南都記者從創維汽車方面獲悉,針對此前有關「創維汽車創始人稱開創維汽車能治病還能延壽」的言論,創維汽車方面回應稱,其獨創的健康3.0系統主動健康監測和主動睡眠促進等技術,確有實時評估生命體征、改善睡眠質量等作用,但從無「治病」、「延壽」等表述,網傳信息屬於斷章取義、惡意拼湊,嚴重誤導公眾。創維汽...
報告:印度智能手機市場消費升級趨勢明顯 - 天天要聞

報告:印度智能手機市場消費升級趨勢明顯

【環球網科技綜合報道】5月12日消息,據外媒報道,根據市場研究機構Counterpoint的最新報告,印度智能手機市場正迎來消費升級的趨勢,消費者越來越傾向於購買更高端的手機型號。隨著用戶對手機性能需求的提升,如遊戲、人工智慧應用以及高質量圖像拍攝,經濟實惠的融資計劃和以舊換新政策也在推動這一轉變。報告顯示,售價...
環球視角:Arm Holdings籌劃2025年推出AI晶元 - 天天要聞

環球視角:Arm Holdings籌劃2025年推出AI晶元

【環球網科技綜合報道】5月12日消息,據《日經亞洲》最新報道,軟銀集團旗下的Arm Holdings已計劃涉足人工智慧晶元領域,目標是在2025年向市場推出其首款產品。據悉,這家總部位於英國的晶元設計公司準備成立專門的人工智慧晶元部門,並致力於在2025年春季之前完成原型產品的構建工作。據《日經亞洲》透露,新晶元的批量生...