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

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

科技分類資訊推薦

寶駿背水一戰 - 天天要聞

寶駿背水一戰

記者 濮振宇從2010年後憑藉經濟型乘用車快速崛起,到2019年後啟用新標推進品牌向上受挫,再到2024年後聚焦新能源與智能駕駛技術重燃戰意,上汽通用五菱旗下寶駿品牌的轉型之路幾經起伏。
2025款風雲A8煥新上市,現金一口價8.99萬元起 - 天天要聞

2025款風雲A8煥新上市,現金一口價8.99萬元起

全民高性能,節能零妥協!4月10日,超能混動新家轎——2025款風雲A8於奇瑞「混動之夜」煥新上市,以8.99萬元起的現金一口價,將國民混動家轎的價值推向全新高度。作為奇瑞以全球標準打造的轎車,風雲A8集高節能、高性能、高安全、高智能四大優勢於一身,不僅能在全
技術王炸只要20萬,漢L唐L上市,威脅了理想? - 天天要聞

技術王炸只要20萬,漢L唐L上市,威脅了理想?

4月9日晚,比亞迪又向汽車市場扔下了一對兒王炸,王朝網全新雙旗艦漢L和唐L正式上市。還記得上個月,兩車在超級e平台技術發布會上開啟預售後,大家說的最多的除了新技術,就是有點貴了(漢L EV預售27-35萬元;唐L EV預售28-36萬元)。但當時誰也沒想到,最
比亞迪雙旗艦漢L唐L正式上市,售價20.98萬元起 - 天天要聞

比亞迪雙旗艦漢L唐L正式上市,售價20.98萬元起

4月9日,比亞迪劃時代雙旗艦車型重磅上市。其中,旗艦轎車漢L共推出漢L EV、漢L DM兩大車系。新車長寬高分別為5050*1960*1505mm,軸距2970mm,是標準的C+級轎車。其中,漢L EV坐擁701KM激光雷達尊享型、701KM激光雷達旗艦型、四