設計模式之介面隔離原則

2021-09-26 03:05:34 字數 1626 閱讀 7014

基本介紹:

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

應用例項:

例1、

public class segregation1 

}inte***ce inte***ce1

class b implements inte***ce1

@override

public void operation2()

@override

public void operation3()

@override

public void operation4()

@override

public void operation5()

}class d implements inte***ce1

@override

public void operation2()

@override

public void operation3()

@override

public void operation4()

@override

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)

}

結論:類 b 和 d 都實現了介面 inte***ce1,而類 a 和 c 並沒有全部呼叫介面實現類的方法,違反了介面隔離原則

例2、

public class segregation2 

}inte***ce inte***ce1

inte***ce inte***ce2

inte***ce inte***ce3

class b implements inte***ce1,inte***ce2

@override

public void operation2()

@override

public void operation3()

}class d implements inte***ce1,inte***ce3

@override

public void operation4()

@override

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)

}

結論:介面最小化,沒有多餘的介面方法,實現了隔離原則

根據**的實際情況將介面中的方法拆分n個介面,使介面最小化,保證介面隔離原則

java 設計模式之介面隔離原則

客戶端不應該依賴它不需要的介面 乙個類對另乙個類的依賴應該建立在最小的介面上 比如 你定義了乙個介面 public inte ce i 但是a只想實現介面中的method1方法 b只想實現介面中的method2,method3方法 c只想實現介面中的method4,method5方法 如果你這個時候...

設計模式 (介面隔離原則)

介面有兩種型別 建立單一介面,介面盡量要細化,同時介面中的方法盡量少 這回可能會有人問了,這跟單一職責原則不是相同的嗎 單一職責要求的是類和介面職責單一,強調的是職責,業務邏輯上的劃分 介面隔離要求介面的方法盡量少,需要盡量使用多個專門介面 下面舉個例子來說明 車的好壞都是口碑,質量和品牌 好車類 ...

設計模式 介面隔離原則

反例 inte ce inte ce1class b implements inte ce1 override public void operation2 override public void operation3 override public void operation4 overrid...