關於介面隔離原則的乙個實現:
使用場合,提供呼叫者需要的方法,遮蔽不需要的方法.滿足介面隔離原則.
比如說電子商務的系統,有訂單這個類,有三個地方會使用到,
乙個是門戶,只能有查詢方法,
乙個是外部系統,有新增訂單的方法,
乙個是管理後台,新增刪除修改查詢都要用到.
根據介面隔離原則(isp),乙個類對另外乙個類的以來性應當是建立在最小的介面上.
也就是說,對於門戶,它只能依賴有乙個查詢方法的介面.
uml結構如下:
下面是實現的**.
//--這兒不用介面繼承,因為可能出現修改了父介面影響了子介面
inte***ce iorderforportal
inte***ce iorderforothersys
inte***ce iorderforadmin
/*inte***ce iorderforportal
inte***ce iorderforothersys
inte***ce iorderforadmin extends iorderforportal,iorderforothersys
*/class order implements iorderforportal,iorderforothersys,iorderforadmin
//返回給portal
public static iorderforportal getorderforportal()
//返回給othersys
public static iorderforothersys getorderforothersys()
//返回給admin
public static iorderforadmin getorderforadmin()
//--下面是介面方法的實現.只是返回了乙個string用於演示---------------
public string getorder()
public string insertorder()
public string updateorder()
public string deleteorder()
}public class testcreatelimit
}這樣就能很好的滿足介面隔離原則了,呼叫者只能訪問它自己的方法,不能訪問到不應該訪問的方法.
歡迎討論...寫這些的目的就是為了共同進步,有什麼錯誤或者不足,歡迎指出....
物件導向的原則之介面隔離原則
設計應用程式的時候,如果乙個模組包含多個子模組,那麼我們應該小心對該模組做出抽象。設想該模組由乙個類實現,我們可以把系統抽象成乙個介面。但是要新增乙個新的模組擴充套件程式時,如果要新增的模組只包含原系統中的一些子模組,那麼系統就會強迫我們實現介面中的所有方法,並且還要編寫一些啞方法。這樣的介面被稱為...
關於上乙個介面實現的解決方案
上乙個文章我提出了乙個 為什麼c 的范型不能自動實現此介面 的問題。我今天上午做了測試,基本上滿足要求,但是不能完全解決。修改 class columncollection namedcollection column icolumncollection 中的column為 icolumn。clas...
關於介面衝突的乙個記錄
示例如下 inte ce inte cea inte ce inte ceb extends inte cea inte ce inte cec 正確 class classa implements inte cea inte ceb 正確 class classb implements inte ...