基本介紹
客戶端不應該依賴它不需要的介面,即乙個類對另乙個類的依賴應該建立在最小的介面上
先看一張圖:
類a通過介面inte***ce1依賴類b,類c通過介面inte***ce1依賴類d,如果介面inte***ce1對於類a和類c來說不是最小介面,那麼類b和類d必須去實現他們不需要的方法。
按隔離原則應當這樣處理:
將介面inte***ce1拆分為獨立的幾個介面,類a和類c分別與他們需要的介面建立依賴關係。也就是採用介面隔離原則
傳統方法應用例項
類a通過介面inte***ce1依賴類b, 類c通過介面inte***ce1依賴類d,請編寫**完成此應用例項。
先看一張圖:
介面inte***ce
inte***ce1
class b implements
inte***ce1
public
void
operation2()
public
void
operation3()
public
void
operation4()
public
void
operation5()
}class d implements
inte***ce1
public
void
operation2()
public
void
operation3()
public
void
operation4()
public
void
operation5()
}class a
public
void
depend2(inte***ce1 i)
public
void
depend3(inte***ce1 i) }
class c
public
void
depend4(inte***ce1 i)
public
void
depend5(inte***ce1 i)
}類a通過介面inte***ce1依賴類b,類c通過介面inte***ce1依賴類d,如果介面
inte***ce1對於類a和類c來說不是最小介面,那麼類b和類d必須去實現他們不
需要的方法
將介面inte***ce1拆分為獨立的幾個介面,類a和類c分別與他們需要的介面建立依賴關係。也就是採用介面隔離原則
介面inte***ce1**現的方法,根據實際情況拆分為三個介面
先看一張圖
介面1inte***ce
inte***ce1
//介面2
inte***ce
inte***ce2
//介面3
inte***ce
inte***ce3
class b implements
inte***ce1, inte***ce2
public
void
operation2()
public
void
operation3()
}class d implements
inte***ce1, inte***ce3
public
void
operation4()
public
void
operation5()
}class a
public
void
depend2(inte***ce2 i)
public
void
depend3(inte***ce2 i)
}class c
public
void
depend4(inte***ce3 i)
public
void
depend5(inte***ce3 i)
}
設計模式七大原則之介面隔離原則
乙個類對另乙個類的依賴應該建立在最小的介面上,如果建立在不是最小的介面上,則要實現不需要的方法違背介面隔離原則。場景 inte ce1是乙個介面,有五個方法,c和d分別實現了inte ce1介面,a通過inte ce1對c產生依賴,但只需要用到function1,function2,function...
設計模式七大原則之介面隔離原則(ISP)
介面隔離原則基本介紹 不應該依賴不需要的介面,即乙個類對另乙個類的依賴應該建立在最小的介面上。場景 1.類b實現介面inte ce1 類a通過介面inte ce1依賴 使 用 類b,但是只會用到1,2,3方法 2.類d實現介面inte ce1 類c通過介面inte ce1依賴 使 用 類d,但是只會...
02 設計模式七大原則 介面隔離原則
客戶端不應該依賴他不需要的介面,即乙個類對另乙個類的依賴應該建立在最小的介面上 package study.wyy.design.principle.segregation author by wyaoyao description date 2020 10 13 8 30 下午 public cl...