<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    葉落知秋

    一葉落而知天下秋

    統計

    留言簿(1)

    Java相關

    閱讀排行榜

    評論排行榜

    Liskov替換原則(LSP)


    發表時間: 2008年01月15日



    注:摘自《敏捷軟件開發:原則、模式與實踐》(Robert C. Martin)
    對于LSP可以做如下解釋:
    子類型(subtype)必須能夠替換掉它們的基類型(base type)

    Barbara Liskov首次寫下這個原則是在1988年。她說到,
    這里需要如下替換性質: 若對每個類型S的對象o1,都存在一個類型T的對象o2,使得在所有針對T編寫的程序P中,用o1替換o2后,程序P行為功能不變,則S是T的子類型。

    OOD中IS-A關系是就行為方式而言的,行為方式是可以進行合理假設的,是客戶程序所依賴的。

    基于契約設計(Design By Contract DBC),類的編寫者顯式的規定針對類的契約。客戶代碼的編寫者通過該契約獲悉可以依賴的。契約是通過為每個方法聲明的前置條件(preconditions)和后置條件(postconditions)來指定的。要使一個方法得以執行,前置條件必須為真。執行完畢后,該方法要保證后置條件為真。

    OCP是OOD中很多說法的核心。如果這個原則應用得有效,應用程學就會具有更多的可維護、可重用性以及健壯性。LSP是使OCP成為可能的主要原則之一。正是子類型的可替換性才使得使用基類型的模塊在無需修改的情況下就可以擴展。這種可替換性必需是開發人員可以隱式依賴的東西。因此,如果沒有顯式的強制基類類型的契約,那么代碼就必須良好的并且明顯的表達出這一點。

    術語“IS-A”的含意過于寬泛以至于不能作為子類型的定義。子類型的正確定義是“可替換性”的,這里的可替換性可以通過顯式或者隱式的契約來定義。

    posted on 2008-01-15 11:45 飛雪連天 閱讀(455) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 在线观看人成视频免费无遮挡| 亚洲GV天堂无码男同在线观看| eeuss影院www天堂免费| 国产资源免费观看| 亚洲av无码一区二区三区在线播放| 国产精品视频免费| 国产精品亚洲自在线播放页码| 18勿入网站免费永久| 亚洲天堂免费在线| 日本免费一区二区三区最新| 欧美日韩亚洲精品| 亚洲国产成人久久笫一页| jizz免费在线观看| 亚洲AV中文无码字幕色三| 在线成人爽a毛片免费软件| 亚洲精品乱码久久久久久下载 | 日韩亚洲国产综合高清| 久久久久亚洲AV成人无码网站| 永久免费av无码入口国语片| 亚洲福利在线视频| 国产又黄又爽又猛免费app| 亚洲精品美女久久久久久久| 亚洲人成无码网WWW| 花蝴蝶免费视频在线观看高清版 | 国产vA免费精品高清在线观看| 久久亚洲AV无码西西人体| 免费观看91视频| 亚洲三级高清免费| 亚洲精品视频久久久| 日本免费中文字幕| 国产午夜亚洲精品| 国产中文在线亚洲精品官网| 久久久久高潮毛片免费全部播放 | va亚洲va日韩不卡在线观看| 国内精品免费久久影院| 亚洲国产精品成人综合久久久 | 免费无码又爽又高潮视频| 一本岛v免费不卡一二三区| 久久夜色精品国产噜噜亚洲AV| 免费无码看av的网站| 久久国产免费一区|