客戶端不應該依賴他不需要的介面,即乙個類對另乙個類的依賴應該建立在最小的介面上
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,但是只會...