我們在學校的時候,每學期都會評比三好學生,通過德智體美勞全面考查,選舉出優秀的學生,接下來我們以這個為例:
首先,我們定義乙個三好學生的介面:
public
inte***ce
igoodstudent
三好學生的實現類,每個學生都有名字的,三好學生也不例外:
public
class
goodstudent
implements
igoodstudent
@override
public
void
goodgrade()
@override
public
void
goodmorals()
}
接下來,我們在定義乙個老師的抽象類:
public
abstract
class
abstractteacher
//老師誇獎三好學生
public
abstract
void
praise()
;}
老師的實現類:
public
class
teacher
extends
abstractteacher
@override
public
void
praise()
}
場景類如下:
public
class
client
}
執行結果:
老師正在誇獎三好學生…
小明成績非常好
小明品德非常好
但是,還有乙個問題,現在我們可能對品德看的比較重要,還多學生樂於助人,樂於奉獻,也被評為三好學習,但是他們可能成績不是特別優秀,可是這這點不滿足,就不能被評為三好學生了,怎麼辦呢?
我們將上述介面拆開:
public
inte***ce
igoodgradestudent
public
inte***ce
igoodmoralsstudent
這樣,我們最標準的三好學生實現類:
public
class
goodstudent
implements
igoodgradestudent
, igoodmoralsstudent
@override
public
void
goodgrade()
@override
public
void
goodmorals()
}
那麼品德突出的三好學生實現類如下:
public
class
goodmoralsstudent
implements
igoodmoralsstudent
@override
public
void
goodmorals()
}
介面隔離原則
一 isp簡介 isp inte ce segregation principle 使用多個專門的介面比使用單一的總介面要好。乙個類對另外乙個類的依賴性應當是建立在最小的介面上的。乙個介面代表乙個角色,不應當將不同的角色都交給乙個介面。沒有關係的介面合併在一起,形成乙個臃腫的大介面,這是對角色和介面...
介面隔離原則
介面隔離原則 isp 客戶端不應該依賴於它不需要的介面。另一種說法是,類間的依賴關係應該建立在最小的介面上。這樣就可以對客戶端隱藏其他的介面資訊,客戶端 只需要知道它需要的內容介面,然後去處理即可,可以更加專注於對功能的實現,其他一概不管。這就是用最小化介面隔離了實現類的細節,也促使我們將龐大的介面...
介面隔離原則
介面隔離原則是指用多個專門的介面,而不使用單一總介面,客戶端不應該依賴它不需要的介面,這個原則指導我們在設計乙個介面的時候要注意以下幾點 乙個類對另乙個類依賴應該建立在最小的介面之上。建立單一介面,不要建立龐大臃腫的介面 盡量細化每個介面,介面中的方法盡量少 不是越少越好,而是要適度 介面隔離原則完...