菜雞與物件導向 (13): 介面隔離原則
今天要記錄的是介面隔離原則,顧名思義是和介面高度相關的原則。因此在閱讀本篇之前,可能需要先對 介面 有一點了解呦。
事情就從上一篇 里氏替換原則 的鳥類物流公司開始說起。老闆痛定思痛,決定先用介面先規定好物流士們的應徵條件,例如裝貨、卸貨、飛行、必須有帥氣的喙等等。
這道命令下來後,倉庫們的企鵝都慌了,來檢查的編譯器瘋狂跳出 Error:「您未實作 IBird 的 Fly() 方法!」這下怎麼辦呢,為了要保住飯碗,企鵝們就必須實作出飛行才行,可是企鵝真的就不會飛呀!
這下子企鵝們只剩下兩個選擇:不實作飛行,但是就不能被當成物流士,最後就會被開除;或是……空實作。
public class Penguin : IBird
{
public void Fly()
{
// Do nothing;
}
}
企鵝們終於騙過了編譯器檢查員,然而當送貨的命令下來之後,企鵝們再一次卡在倉庫門口發呆,最終物流公司仍然踏上了虧損的老路,再度面臨倒閉危機…
……