日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

【设计模式】软件设计七大原则 ( 里氏替换原则 | 定义 | 定义扩展 | 引申 | 意义 | 优点 )

發布時間:2025/6/17 asp.net 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【设计模式】软件设计七大原则 ( 里氏替换原则 | 定义 | 定义扩展 | 引申 | 意义 | 优点 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、里氏替換原則定義
  • 二、里氏替換原則定義擴展
  • 三、里氏替換原則引申意義
  • 四、里氏替換原則意義
  • 五、里氏替換原則優點





一、里氏替換原則定義



里氏替換原則定義 :

如果 對每一個 類型為 T1對象 o1 , 都有 類型為 T2對象 o2 ,

使得 以 T1 定義的 所有程序 P所有對象 o1替換成 o2 時 ,

程序 P行為 沒有發生變化 ,

那么 類型 T2類型 T1子類型 ;


符號縮寫說明 : T 是 類型 Type , o 是 對象 Object , P 是 程序 Program ;


通俗理解 :

T1 類 生成 o1 對象 ,

T2 類 生成 o2 對象 ,

開發的 程序 P使用了 T1 類型 , 使用 T1 創建了對象 o1 ,

將程序中 所有的 o1 都替換成 T2 o2 時 ,

程序 P 的行為 , 沒有發生變化 ,

可以認為 T2 是 T1 的子類型 ;


T2 是 T1 的子類型 , T1 則是 T2 的父類 ;

里氏替換原則 是 繼承復用 的基石 , 只有當 子類 可以 替換 父類 , 并且 軟件功能不受影響 時 , 父類才能真正的被復用 , 子類也能在父類的基礎上 增加新的行為 ;

里氏替換原則 是對 開閉原則 的補充 , 實現開閉原則的關鍵是 進行抽象 , 父類 和 子類 的繼承關系 , 就是 抽象 的具體實現 ;





二、里氏替換原則定義擴展



里氏替換原則定義擴展 :

一個 軟件實體 如果 適用于 一個父類的話 ,

一定適用于其子類 ,

所有 引用父類的地方 , 必須能 透明地 使用其子類的對象 ,

子類對象 能夠 替換父類對象 , 而 程序邏輯不變 ;


通過繼承深入理解里氏替換原則 :

抽象類父類中如果已經有實現好的方法 , 實際上 , 是在設定一系列的規范 和 契約 ,

父類不強制要求子類遵從這些契約 ,

但是如果子類任意修改父類的非抽象方法 ,

就會破壞整個繼承體系 ,

里氏替換原則 明確反對 子類重寫父類方法 ;


繼承作為 面向對象 的特性之一 , 給設計程序時 , 帶來了很大的便利 , 同時也 帶來很多弊端 ;

如 : 使用繼承 , 會給程序帶來一些侵入性 , 降低可移植性 , 增加了對象間的耦合 ;

如果一個父類 被 很多子類繼承 , 假設修改該父類 , 必須考慮所有的子類 , 否則會給系統引入未知風險 ;





三、里氏替換原則引申意義



子類 可以 擴展 父類的功能 , 但是絕對不能 改變 父類原有的功能 ;


子類 可以 實現 父類的 抽象方法 , 但是 不能 覆蓋 父類的 非抽象方法 ;


子類中 可以 增加 自己特有的方法 ;


重載 ( 輸入參數 寬松 ) : 子類的方法 重載 父類的方法 時 , 方法的前置條件 ( 輸入參數 ) , 要比 父類方法的輸入參數更寬松 ;

如 : 父類的參數是 HashMap , 如果要符合 里氏替換原則 , 子類如果重載父類方法 , 那么需要使用 Map 類型參數 ;
( 這里注意區分 重寫 與 重載 , 重寫是重寫父類方法 , 重載是函數名相同 , 參數不同 )


重寫 ( 返回值 嚴格 ) : 當 子類的方法 重寫 / 重載 / 實現 父類的方法時 , 方法的 后置條件 ( 返回值 ) 比父類更嚴格或相等 ;

如 : 父類的返回值是 Map , 子類的相同的方法 是 Map 或 HashMap ;





四、里氏替換原則意義



里氏替換原則 要求很多 , 但是在程序中 , 如果不遵守 里氏替換原則 ,
尤其是關于 重載 ( 輸入參數 寬松 ) 和 重寫 ( 返回值 嚴格 ) , 都沒有特別注意 ,
程序也可以正常運行 , 不會出現問題 ;
后果是在 需求變更 , 引入新功能 , 重構時 , 出問題的風險增加 ;
里氏替換原則只是一個約束 , 不是嚴格執行的標準 ;





五、里氏替換原則優點



里氏替換原則優點 :

  • 防止繼承泛濫 :開閉原則 的一種體現 ;
  • 增強健壯性 : 如果滿足 里氏替換原則 , 會 加強程序的健壯性 , 同時 變更時 , 可以做到非常好的 兼容性 , 提高程序的 維護性 , 擴展性 ; 降低需求變更時 引入的風險 ;

總結

以上是生活随笔為你收集整理的【设计模式】软件设计七大原则 ( 里氏替换原则 | 定义 | 定义扩展 | 引申 | 意义 | 优点 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩在线观看你懂的 | 秋霞国产 | 亚洲三页| 小俊大肉大捧一进一出好爽 | 黑色丝袜吻戏亲胸摸腿 | 免费国产黄色 | 少妇人妻好深好紧精品无码 | 亚洲精品永久免费 | 国产精品欧美久久久久天天影视 | 国内自拍99 | 免费看污片网站 | 欧美视频精品 | 操伊人 | 少妇久久久久久被弄高潮 | 狠狠操在线 | 国产伦理精品 | 春色导航 | 无码国产精品一区二区高潮 | 日日干天天爽 | 音影先锋av资源 | 免费看的毛片 | 午夜精品久久久久久久91蜜桃 | 野花av| 久久久久成人精品免费播放动漫 | 国产免费毛卡片 | 日本少妇bb | 成人污网站| 国产av人人夜夜澡人人爽麻豆 | 日韩一区二区不卡视频 | 黄色一级视频片 | 日本中文字幕第一页 | 亚洲AV成人无码精电影在线 | 亚洲啪 | 亚洲一本在线 | 极品销魂美女一区二区三区 | 成人性生活免费看 | 婷婷色视频 | 国产激情二区 | 国产人成免费视频 | 久久成人在线观看 | 国产又黄又爽又色 | 美女a视频 | 国产区在线观看视频 | www.亚洲高清 | 野外(巨肉高h) | 亚洲精品乱码久久久久久 | 爽爽爽av | 亚洲伦理影院 | 岛国a视频 | 午夜性生活视频 | 91精品视频在线 | 免费成人激情视频 | 麻豆影视在线播放 | av网站在线免费观看 | 福利在线网站 | 五月在线视频 | 美女高潮网站 | 91极品蜜桃臀| 久久综合操 | 日韩一区二区中文字幕 | 天堂在线视频免费 | 国产精品一区二区免费视频 | 成人欧美日韩 | 九一亚色| 日韩精品色呦呦 | 日本亚洲国产 | 日本三区视频 | 91成人免费在线观看视频 | 成人免费视频国产 | av片在线观看网站 | 国产精品美女久久久久久久久 | 欧美中文字幕一区 | 干日本少妇 | 欧美高清hd | 三上悠亚在线播放 | 久久成人在线视频 | 成人激情视频 | 国产成人在线观看免费网站 | 最新色网址| 成年人黄色免费网站 | av之家在线 | 夜夜操夜夜| 久久6 | 91色国产| 中文字幕天堂av | 女人下面喷水视频 | 农村黄色片 | 天天舔天天舔 | 女生高潮视频在线观看 | 懂色av一区二区三区四区五区 | 国产欧美在线 | 日av中文字幕 | 蜜桃成人在线视频 | 久久99伊人 | av在线男人天堂 | 97久久久久 | 日本中文字幕一区 | 日批在线 | 国产天堂在线 |