設計模式七大原則之介面隔離原則(ISP)

2021-10-04 15:15:01 字數 2243 閱讀 9021

介面隔離原則基本介紹

不應該依賴不需要的介面,即乙個類對另乙個類的依賴應該建立在最小的介面上。

場景:1.類b實現介面inte***ce1 ,類a通過介面inte***ce1依賴(使 用)類b,但是只會用到1,2,3方法

2.類d實現介面inte***ce1 ,類c通過介面inte***ce1依賴(使 用)類d,但是只會用到1,4,5方法

public

class

isp}

inte***ce

inte***ce1

//類b實現介面inte***ce1

class

bimplements

inte***ce1

public

void

operation2()

public

void

operation3()

public

void

operation4()

public

void

operation5()

}//類d實現介面inte***ce1

class

dimplements

inte***ce1

public

void

operation2()

public

void

operation3()

public

void

operation4()

public

void

operation5()

}//類a通過介面inte***ce1依賴(使用) 類b,但是只會用到1,2,3方法

class

apublic

void

depend2

(inte***ce1 i)

public

void

depend3

(inte***ce1 i)

}//類c通過介面inte***ce1依賴(使用) 類d,但是只會用到1,4,5方法

class

cpublic

void

depend4

(inte***ce1 i)

public

void

depend5

(inte***ce1 i)

}

介面隔離原則

public

class

isp}

inte***ce

inte***ce1

inte***ce

inte***ce2

inte***ce

inte***ce3

//類b 實現介面inte***ce1 ,inte***ce2的所有方法

class

bimplements

inte***ce1

, inte***ce2

public

void

operation2()

public

void

operation3()

}//類a 通過介面 inte***ce1,inte***ce2 依賴 (使用)類b 只會用到方法1,2,3

class

apublic

void

depend2

(inte***ce2 i)

public

void

depend3

(inte***ce2 i)

}//類d實現介面inte***ce1,inte***ce3 的所有方法

class

dimplements

inte***ce1

, inte***ce3

public

void

operation4()

public

void

operation5()

}//類c 通過介面 inte***ce1,inte***ce3 依賴 (使用)類d 只會用到方法1,4,5

class

cpublic

void

depend4

(inte***ce3 i)

public

void

depend5

(inte***ce3 i)

}

設計模式七大原則之介面隔離原則

乙個類對另乙個類的依賴應該建立在最小的介面上,如果建立在不是最小的介面上,則要實現不需要的方法違背介面隔離原則。場景 inte ce1是乙個介面,有五個方法,c和d分別實現了inte ce1介面,a通過inte ce1對c產生依賴,但只需要用到function1,function2,function...

設計模式七大原則之介面隔離原則

基本介紹 客戶端不應該依賴它不需要的介面,即乙個類對另乙個類的依賴應該建立在最小的介面上 先看一張圖 類a通過介面inte ce1依賴類b,類c通過介面inte ce1依賴類d,如果介面inte ce1對於類a和類c來說不是最小介面,那麼類b和類d必須去實現他們不需要的方法。按隔離原則應當這樣處理 ...

02 設計模式七大原則 介面隔離原則

客戶端不應該依賴他不需要的介面,即乙個類對另乙個類的依賴應該建立在最小的介面上 package study.wyy.design.principle.segregation author by wyaoyao description date 2020 10 13 8 30 下午 public cl...