ISP介面隔離原則

2021-07-05 05:58:16 字數 822 閱讀 6835

1.isp介面隔離原則

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

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

示例:

abstract class door

inte***ce door

現在要求door還要具有報警的功能。我們該如何設計針對該例子的類結構呢?

簡單的在door的定義中增加乙個alarm方法,如下:

abstract class door

或者 inte***ce door

那麼具有報警功能的alarmdoor的定義方式如下:

class alarmdoor extends door

void close()

void alarm()

} 或者

class alarmdoor implements door {

void open()

void close()

void alarm()

} 這違反了物件導向設計中的乙個核心原則isp(inte***ce segregation priciple),在door的定義中把door概念本身固有的行為方法和另外乙個概念」報警器」的行為方法混在了一起。這樣引起的乙個問題是那些僅僅依賴於door這個概念的模組會因為」報警器」這個概念的改變而改變,反之依然。

根據isp原則,解決方案如下:

既然open、close和alarm屬於兩個不同的概念,根據isp原則應該把它們分別定義在代表這兩個概念的抽象類中。

介面隔離原則 ISP

一 isp簡介 isp inte ce segregation principle 使用多個專門的介面比使用單一的總介面要好。乙個類對另外乙個類的依賴性應當是建立在最小的介面上的。乙個介面代表乙個角色,不應當將不同的角色都交給乙個介面。沒有關係的介面合併在一起,形成乙個臃腫的大介面,這是對角色和介面...

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

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

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

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