定義用多個專門的介面,而不使用單一的總介面。客戶端不應該依賴它不需要的介面。
強調乙個類對乙個類的依賴應該建立在最小的介面上。
建立單一介面,不要建立龐大臃腫的介面。
盡量細化介面,介面中的方法盡量少。 優點
符合我們常說的高內聚低耦合的設計思想,從而使得類具有很好的可讀性、可擴充套件性和可維護性。
**實現
還是先以反例來說明,看乙個違背介面隔離原則的設計。
public
inte***ce
animal
定義了乙個動物的介面,接下來寫實現類。
public
class
smalldog
implements
animal
@override
public
void
swim()
@override
public
void
fly(
)}
public
class
smallbird
implements
animal
@override
public
void
swim()
@override
public
void
fly(
)}
可以仔細看上面的**,小狗實現了動物這個類,實現了裡面的方法,但是呢。有乙個空方法,這是小狗不需要實現的。不可能強迫人家小狗飛到天上吧?
小鳥的實現類和小狗一樣,難道讓小鳥跑到水裡游泳去嗎?這也太難為人家了。這就是介面設計的過於臃腫,只要介面**現的方法,不管對依賴於它的類有沒有用處,實現類中都必須去實現這些方法。
所以,為了避免這樣的情況發生,就要根據介面隔離原則,將介面抽離出來,使用多個統一的介面。
遵循介面隔離原則,重新實現上面的**。首先定義乙個吃東西的介面
public
inte***ce
ieatability
接著定義乙個游泳的介面
public
inte***ce
iswimability
最後定義飛的介面
public
inte***ce
iflyability
小狗只會吃東西和游泳,所以只用實現吃、游泳的介面。
public
class
dogimplements
ieatability
, iswimability
@override
public
void
swim()
}
小鳥只會吃東西和飛,所以只用實現吃、飛的介面。
public
class
bird
implements
ieatability
, iflyability
@override
public
void
fly(
)}
基本上介面隔離原則就完成了,這個原則相對簡單。但是在介面設計的時候也要注意,介面設計盡量小,但是一定要適度。設計的過小,會使系統複雜度增加,不利於維護。
成就一番偉業的唯一途徑就是熱愛自己的事業。如果你還沒能找到讓自己熱愛的事業,繼續尋找,不要放棄。跟隨自己的心,總有一天你會找到的。
《設計模式》 原則四 介面隔離原則(ISP)
啊!天氣很熱啊,回來洗個澡,做個飯吃完後 又出了一身汗,真後悔先洗澡。加油堅持學習,今天要學的是 介面隔離原則 意思是說 在設計的時候使用多個專門的介面比使用乙個總的介面好很多。乙個類對另乙個類的依賴關係應該建立到最小介面上。啊,這個好像比較好理解哈,就是在設計程式的時候 要學會使用介面程式設計。但...
六大設計原則 4 介面隔離原則
介面隔離原則 isp inte ce segregation principle 定義 1.客戶端不應該依賴它不需要的介面 2.乙個類對另乙個類的依賴應該建立在最小介面上。當我們設計乙個大的介面a,其子類b c為實現介面功能,可能不得不寫一些不需要的空的方法,而客戶端需要b的實現時必須通過a這個非最...
設計原則三 介面隔離原則
介面隔離原則 inte ce segregation principle,isp 是指用多個專門的介面,而不使 用單一的總介面,客戶端不應該依賴它不需要的介面。這個原則指導我們在設計介面時 應當注意一下幾點 1 乙個類對一類的依賴應該建立在最小的介面之上。2 建立單一介面,不要建立龐大臃腫的介面。3...