一文讓你再也不怕面試官提問「介面隔離原則」

2021-10-07 03:45:28 字數 1718 閱讀 7694

來自菜鳥的關懷

隨著天氣越來越熱,大家是不是都已經過上「左手小冰棍,右手大西瓜,吹著小空調,樂的笑哈哈」的日子了?不過還是要在這裡提醒大家一下,冷飲、空調雖然好,但是一定要適度啊!

這不最近菜鳥就因為歡樂過度,樂極生悲了,急性腸胃炎找上了。拉肚子,拉到懷疑人生,上廁所,上到頭皮發麻,整個人都已經虛脫了。所以大家一定要多多注意,千萬別跟菜鳥一樣吃壞肚子。

基本概念

專業解釋:

1、客戶端不應該依賴它不需要的介面。

2、乙個類對另乙個類的依賴應該建立在最小的介面上。

是不是有種雨裡霧裡的感覺?這就對了,只有不好理解才能稱得上專業嗎!

好了好了,開玩笑啦!讓菜鳥來解釋一下。

乙個介面只應該被賦予一種職責(角色),不可以將不同職責都交給乙個介面。

介面隔離原則的好處

1、單一化介面的職責,從而有效地避免介面汙染。

2、當乙個介面的方法過多,往往會造成使用該介面的類中閒置一些方法,造成**的冗餘,通過細分介面可有效避免該現象。

3、可以提高**的靈活性,就好比搭積木一樣,我們可以將乙個大的介面拆成多個小介面,不同的小介面可以有多種組合。

4、促使程式高內聚、低耦合。

注意:細化介面雖好,但是也不可一味地盲目拆分,不然會增加介面的數量,提高系統的維護成本。**示例

先展示一下未遵守介面隔離原則的**

public

inte***ce

school

如上**,假設此時有乙個people類,它的角色是學生,實現了school介面。它就會被迫實現「講課」這個方法,事實它是不需要該方法的。這就造成了**的冗餘,使我們的**變得臃腫。

按照介面隔離原則,我們可以將上面的大介面拆分成3個小的介面。

學校介面:

public

inte***ce

school

老師介面:

public

inte***ce

teacher

學生介面:

public

inte***ce

student

通過上面的拆分我們就可以有效避免冗餘**的產生,進而還可以促使我們的**變得更加靈活。

以上就菜鳥對介面隔離原則的一點自己的看法,如果文章那裡寫的不合理的希望大家可以提出來。還有一點需要提醒大家的就是:凡事都是利弊共存,我們需要學會權衡利弊,找到最優的解決方法,促使程式變得更加的優秀。好了今天的分享就到這裡了,感覺文章寫得還不錯的記得給點讚加關注呦,最後祝大家週末愉快!

一文讓你明白Redis持久化

網上雖然已經有很多類似的介紹了,但我還是自己總結歸納了一下,自認為內容和細節都是比較齊全的。好了,下面開始回歸正文 redis 一共有 2 種持久化方式,分別是 rdb 和 aof,下面我來詳細介紹兩種方式在各個過程所做的事情,特點等等。rdb 持久化是 redis 預設的持久化方式。它所生成的 r...

一文讓你熟練掌握Linux的ncat nc 命令

ncat或者說nc是一款功能類似cat的工具,但是是用於網路的。它是一款擁有多種功能的cli工具,可以用來在網路上讀 寫以及重定向資料。它被設計成可以被指令碼或其他程式呼叫的可靠的後端工具。同時由於它能建立任意所需的連線,因此也是乙個很好的網路除錯工具。ncat nc既是乙個埠掃瞄工具,也是一款安全...

用案例讓你一文搞懂python網路爬蟲

很久以前寫了一篇爬蟲的文章,把它放在csdn上 livan1234 沒想到點選量竟然暴漲,足以看到大家在資料獲取方面的需求,爬蟲技術現在已經非常普遍,其用途也非常廣泛,很多牛人在各個領域做過相關的嘗試,比如 1 爬取汽車之家資料,利用論壇發言的抓取以及nlp,對各種車型的車主做畫像。2 抓取各大電商...