介面隔離原則 ISP

2021-04-12 20:26:56 字數 660 閱讀 9190

一、isp簡介(isp--inte***ce segregation principle):

使用多個專門的介面比使用單一的總介面要好。

乙個類對另外乙個類的依賴性應當是建立在最小的介面上的。

乙個介面代表乙個角色,不應當將不同的角色都交給乙個介面。沒有關係的介面合併在一起,形成乙個臃腫的大介面,這是對角色和介面的汙染。

「不應該強迫客戶依賴於它們不用的方法。介面屬於客戶,不屬於它所在的類層次結構。」這個說得很明白了,再通俗點說,不要強迫客戶使用它們不用的方法,如果強迫使用者使用它們不使用的方法,那麼這些客戶就會面臨由於這些不使用的方法的改變所帶來的改變。

二、舉例說明:

參考下圖的設計,在這個設計裡,取款、存款、轉帳都使用乙個通用介面介面,也就是說,每乙個類都被強迫依賴了另兩個類的介面方法,那麼每個類有可能因為另外兩個類的方法(跟自己無關)而被影響。拿取款來說,它根本不關心「存款操作」和「轉帳操作」,可是它卻要受到這兩個方法的變化的影響。

那麼我們該如何解決這個問題呢?參考下圖的設計,為每個類都單獨設計專門的操作介面,使得它們只依賴於它們關係的方法,這樣就不會互相影了!

三、實現方法:

1、使用委託分離介面

2、使用多重繼承分離介面

ISP介面隔離原則

1.isp介面隔離原則 乙個類對另外乙個類的依賴性應當是建立在最小的介面上的。乙個介面代表乙個角色,不應當將不同的角色都交給乙個介面。沒有關係的介面合併在一起,形成乙個臃腫的大介面,這是對角色和介面的汙染。示例 abstract class door inte ce door 現在要求door還要具...

設計原則之介面隔離原則(ISP)

只提供呼叫者需要的方法,遮蔽不需要的方法 電子商務系統,該系統中有訂單這個類,並在三個地方使用到訂單類 針對這三種不同的應用場景,為了滿足介面隔離原則,應使用是三個不同的介面進行隔離,每個介面中提供的方法不同,這樣使每個應用都建立在最小介面上 使用者門戶應用介面 public inte ce ior...

軟體設計原則 介面隔離原則(ISP)

使用多個專門的介面比使用單一的總介面要好 乙個類對另外乙個類的依賴性應該建立在最小的介面上 陳述 例子 door可以加鎖 解鎖 而且可以感知自己是開還是關 door是抽象基類,客戶程式可以依賴於抽象而不是具體的實現。class door 現在我們要增加乙個功能 如果門開啟時間過長,它就會報警 比如賓...