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

2021-10-24 17:19:32 字數 2498 閱讀 1325

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

package study.wyy.design.principle.segregation;

/** * @author by wyaoyao

* @description

* @date 2020/10/13 8:30 下午

*/public

class

segregation1

}inte***ce

inte***ce

class

aimplements

inte***ce

public

void

method2()

public

void

method3()

public

void

method4()

public

void

method5()

}class

bimplements

inte***ce

public

void

method2()

public

void

method3()

public

void

method4()

public

void

method5()

}// c通過介面inte***ce 依賴類a

class

cpublic

void

depend1()

public

void

depend2()

public

void

depend3()

}// d 通過介面inte***ce 依賴類b

class

dpublic

void

depend1()

public

void

depend4()

public

void

depend5()

}

類圖

簡單介紹:

問題

inte***ce對於a,b來說不是最小介面,但是c,d又通過inte***ce依賴a,b,最終a只用到了介面中的1,2,3三個方法,b只用,3,4,5三個方法,沒必要實現介面中的全部方法

思路

將inte***ce這個介面拆成三個介面

package study.wyy.design.principle.segregation.improve;

/** * @author by wyaoyao

* @description

* @date 2020/10/13 8:30 下午

*/public

class

segregation2

}inte***ce

inte***ce1

inte***ce

inte***ce2

inte***ce

inte***ce3

class

aimplements

inte***ce1

,inte***ce2

public

void

method2()

public

void

method3()

}class

bimplements

inte***ce1

,inte***ce3

public

void

method4()

public

void

method5()

}// c通過介面inte***ce 依賴類a

class

cpublic

void

depend1()

public

void

depend2()

public

void

depend3()

}// d 通過介面inte***ce 依賴類b

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

乙個類對另乙個類的依賴應該建立在最小的介面上,如果建立在不是最小的介面上,則要實現不需要的方法違背介面隔離原則。場景 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必須去實現他們不需要的方法。按隔離原則應當這樣處理 ...

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

介面隔離原則基本介紹 不應該依賴不需要的介面,即乙個類對另乙個類的依賴應該建立在最小的介面上。場景 1.類b實現介面inte ce1 類a通過介面inte ce1依賴 使 用 類b,但是只會用到1,2,3方法 2.類d實現介面inte ce1 類c通過介面inte ce1依賴 使 用 類d,但是只會...