反例:
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()
}
/**
* a類通過j介面inte***ce1依賴(使用)b類,但只會用到1,2,3方法
*/class a
public void dependency2(inte***ce1 i)
public void dependency3(inte***ce1 i)
}
優化uml/**
* c類通過j介面inte***ce1依賴(使用)d類,但只會用到1,4,5方法
*/class c
public void dependency4(inte***ce1 i)
public void dependency5(inte***ce1 i)
}

**
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()
}
/**
* a類通過j介面inte***ce1,inte***ce2依賴(使用)b類,但只會用到1,2,3方法
*/class a
public void dependency2(inte***ce2 i)
public void dependency3(inte***ce2 i)
}
/**
* c類通過j介面inte***ce1,inte***ce3依賴(使用)d類,但只會用到1,4,5方法
*/class c
public void dependency4(inte***ce3 i)
public void dependency5(inte***ce3 i)
}
設計模式 (介面隔離原則)
介面有兩種型別 建立單一介面,介面盡量要細化,同時介面中的方法盡量少 這回可能會有人問了,這跟單一職責原則不是相同的嗎 單一職責要求的是類和介面職責單一,強調的是職責,業務邏輯上的劃分 介面隔離要求介面的方法盡量少,需要盡量使用多個專門介面 下面舉個例子來說明 車的好壞都是口碑,質量和品牌 好車類 ...
設計模式 介面隔離原則
設計模式 介面隔離原則 用類圖說明 然後書寫 清單 public inte ce ipettygirl接著,使用具體的類實現 public class pettygirl implements ipettygirl 臉 public void goodlooking 氣質 public void n...
設計模式之介面隔離原則
基本介紹 客戶端不應該依賴它不需要的介面,即乙個類對另乙個類的依賴應該建立在最小的介面上 應用例項 例1 public class segregation1 inte ce inte ce1 class b implements inte ce1 override public void opera...