設計模式:接口隔離原則

這是我在百戰程序員第一天上課,老師給我們留的一個問題,讓我們自己弄明白。

1、接口隔離原則定義:
客戶端不應該依賴他不需要的接口;一個類中對另一個的依賴應該建立在最小的接口上。

2、問題由來:類A通過接口I依賴類B,類C通過接口I依賴類D,如果接口I對類A和類B來說不是最小接口,則類A和類B必須實現他們不需要的方法。

3、解決方案:
將臃腫的接口I拆分爲獨立的幾個接口,類A和類C分別與他們需要的接口建立依賴的聯繫,也就是採用了接口隔離的原則。

沒有接口隔離

可以看到,如果接口過於臃腫,只要接口中出現的方法,不管對依賴它的類有沒有好處,實現類中都必須去實現這些方法,這顯然不是好的設計。如果將這個設計修改爲符合接口隔離原則,就必須對接口I進行拆分,在這裏我們將原有的接口I拆分爲三個接口,拆分後的設計如圖2所示:
接口隔離

接口隔離原則的含義是:建立單一接口,儘量細化接口,接口中的方法儘量少。也就是說我們要爲各個類建立專用的接口,而不要試圖去建立一個很龐大的接口供所有依賴他的類去調用。

要注意以下幾個方面:

  • 接口儘量小,但是要有限度。對接口進行細化可以提高程序設計靈活性是不爭的事實,但是如果過小,則會造成接口數量過多,使設計負責化。
  • 爲依賴接口的類定製服務,只暴露給調用的類他需要的方法,他不需要的方法則隱藏起來。只有專注的爲一個模塊提供定製服務,才能建立最小的依賴關係。
  • 提高內聚,減小對外交互。事接口用最少的方法去完成最多的事情。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章