基本介紹:
客戶端不應該依賴它不需要的介面,即乙個類對另乙個類的依賴應該建立在最小的介面上
應用例項:
例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...