国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

設(shè)計(jì)模式:里氏代換原則(Liskov Substitution Principle,LSP)介紹

這篇具有很好參考價(jià)值的文章主要介紹了設(shè)計(jì)模式:里氏代換原則(Liskov Substitution Principle,LSP)介紹。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

里氏代換原則(Liskov Substitution Principle,LSP)是面向?qū)ο笤O(shè)計(jì)原則的一部分,它強(qiáng)調(diào)子類對(duì)象應(yīng)該能夠替換其父類對(duì)象而不影響程序的正確性。換句話說,子類對(duì)象應(yīng)該可以在不改變程序正確性的前提下替換掉父類對(duì)象。

該原則的實(shí)現(xiàn)原理可以通過以下幾點(diǎn)來說明:

  1. 子類必須完全實(shí)現(xiàn)父類的抽象方法: 子類繼承父類時(shí),必須實(shí)現(xiàn)父類中聲明的所有抽象方法,并且保持方法簽名和語(yǔ)義的一致性。

  2. 子類可以具有比父類更廣的行為: 子類可以擴(kuò)展父類的功能,但不能收縮或修改父類已有的功能。也就是說,子類可以在父類的行為基礎(chǔ)上進(jìn)行擴(kuò)展,但不能修改或刪除父類已有的行為。

  3. 子類返回類型必須與父類兼容: 子類方法的返回類型必須與父類方法的返回類型兼容,這意味著子類方法的返回值可以是父類方法返回值的子類型。

在 Python 中,實(shí)現(xiàn)里氏代換原則可以通過以下方式:

# 抽象類 計(jì)算面積函數(shù)
class Shape:
    def area(self):
        pass

'''  解藕 '''
# 繼承,子類
class Rectangle(Shape):
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

class Square(Shape):
    def __init__(self, side_lenth):
        self.side_length = side_lenth

    def area(self):
        return self.side_length ** 2

# 計(jì)算面積
'''
由于 Rectangle 和 Square 都是 Shape 的子類,并且都實(shí)現(xiàn)了 area() 方法
所以它們可以 在不影響程序正確性的前提下 替換 Shape 對(duì)象。這符合里氏代換原則的要求
'''
def cal_area(shape):
    return shape.area()



rectangle = Rectangle(2,3)
square = Square(5)

print(cal_area(rectangle))
print(cal_area(square))

6
25文章來源地址http://www.zghlxwxcb.cn/news/detail-861688.html

到了這里,關(guān)于設(shè)計(jì)模式:里氏代換原則(Liskov Substitution Principle,LSP)介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 設(shè)計(jì)模式(四):里氏替換原則(詳解)

    本博主將用CSDN記錄軟件開發(fā)求學(xué)之路上親身所得與所學(xué)的心得與知識(shí),有興趣的小伙伴可以關(guān)注博主!也許一個(gè)人獨(dú)行,可以走的很快,但是一群人結(jié)伴而行,才能走的更遠(yuǎn)! (1)引入 繼承包含這樣一層含義:父類中凡是已經(jīng)實(shí)現(xiàn)好的方法, 實(shí)際上是在設(shè)定規(guī)范和契約 ,

    2024年02月05日
    瀏覽(23)
  • 【設(shè)計(jì)模式】設(shè)計(jì)原則-開閉原則

    定義 作用 1、方便測(cè)試;測(cè)試時(shí)只需要對(duì)擴(kuò)展的代碼進(jìn)行測(cè)試。 2、提高代碼的可復(fù)用性;粒度越小,被復(fù)用的可能性就越大。 3、提高軟件的穩(wěn)定性和延續(xù)性,易于擴(kuò)展和維護(hù)。 實(shí)現(xiàn)方式 通過“抽象約束、封裝變化”來實(shí)現(xiàn)開閉原則。通過接口或者抽象類為軟件實(shí)體定義一

    2024年02月15日
    瀏覽(23)
  • 前端設(shè)計(jì)模式和設(shè)計(jì)原則之設(shè)計(jì)原則

    1 開閉原則 該原則指出軟件實(shí)體(類、模塊、函數(shù)等)應(yīng)該 對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉 。也就是說,在添加新功能時(shí),應(yīng)該通過擴(kuò)展現(xiàn)有代碼來實(shí)現(xiàn),而不是直接修改已有的代碼。這樣可以確?,F(xiàn)有代碼的穩(wěn)定性,并且減少對(duì)其他部分的影響。 在上述例子中,有一個(gè)原始功能

    2024年02月07日
    瀏覽(51)
  • 設(shè)計(jì)原則學(xué)習(xí)之里氏替換原則

    以下內(nèi)容均來自抖音號(hào)【it楠老師教java】的設(shè)計(jì)模式課程。 1 、原理概述 子類對(duì)象(objectofsubtype/derivedclass)能夠替換程序(program)中父類對(duì)象(objectofbase/parentclass)出現(xiàn)的任何地方,并且保證原來程序的邏輯行為(behavior)不變及正確性不被破壞。 2、簡(jiǎn)單的示例1 // 基類:

    2024年02月14日
    瀏覽(19)
  • 【Java 設(shè)計(jì)模式】設(shè)計(jì)原則之開放封閉原則

    在軟件開發(fā)中,設(shè)計(jì)原則是創(chuàng)建靈活、可維護(hù)和可擴(kuò)展軟件的基礎(chǔ)。 這些原則為我們提供了指導(dǎo)方針,幫助我們構(gòu)建高質(zhì)量、易理解的代碼。 ?單一職責(zé)原則(SRP) ?開放/封閉原則(OCP) ?里氏替換原則(LSP) ?依賴倒置原則(DIP) ?接口隔離原則(ISP) ?合成/聚合復(fù)

    2024年02月02日
    瀏覽(61)
  • 設(shè)計(jì)模式——設(shè)計(jì)模式以及六大原則概述

    設(shè)計(jì)模式——設(shè)計(jì)模式以及六大原則概述

    設(shè)計(jì)模式代表有經(jīng)驗(yàn)的面向?qū)ο筌浖_發(fā)人員使用的最佳實(shí)踐。 設(shè)計(jì)模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。 這些解決方案是由許多軟件開發(fā)人員在相當(dāng)長(zhǎng)的時(shí)間內(nèi)通過試錯(cuò)獲得的。 在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四

    2024年02月13日
    瀏覽(22)
  • 設(shè)計(jì)模式的設(shè)計(jì)原則

    設(shè)計(jì)模式的設(shè)計(jì)原則

    為什么需要設(shè)計(jì)模式? 我的理解設(shè)計(jì)模式就是一種針對(duì)某種問題的套路,是一套被反復(fù)使用,多數(shù)人所知曉的,經(jīng)過分類編目的,代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。 1.開閉原則 1.1 定義: ????一個(gè)軟件實(shí)體應(yīng)當(dāng)對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉,即軟件實(shí)體應(yīng)盡量在不修改原有代碼下進(jìn)行擴(kuò)展

    2024年02月09日
    瀏覽(19)
  • 深入理解設(shè)計(jì)原則之里氏替換原則(LSP)【軟件架構(gòu)設(shè)計(jì)】

    深入理解設(shè)計(jì)原則之里氏替換原則(LSP)【軟件架構(gòu)設(shè)計(jì)】

    C++高性能優(yōu)化編程系列 深入理解軟件架構(gòu)設(shè)計(jì)系列 深入理解設(shè)計(jì)模式系列 高級(jí)C++并發(fā)線程編程 里氏替換原則(Liskov Substitution Principle, LSP)于1986年有Barbara Liskov提出,他當(dāng)時(shí)是這樣描述這條原則的: 如果S是T的子類型,那么T的對(duì)象可以被S的對(duì)象所替換,并不影響代碼的運(yùn)行

    2024年02月07日
    瀏覽(23)
  • 軟件設(shè)計(jì)模式原則(二)開閉原則

    軟件設(shè)計(jì)模式原則(二)開閉原則

    繼續(xù)講解第二個(gè)重要的設(shè)計(jì)模式原則——開閉原則~ 一.定義 ????????開閉原則,在面向?qū)ο缶幊填I(lǐng)域中,規(guī)定“軟件中的對(duì)象(類,模塊,函數(shù)等等)應(yīng)該對(duì)于擴(kuò)展是開放的,但是對(duì)于修改是封閉的”,這意味著一個(gè)實(shí)體是允許在不改變它的源代碼的前提下變更它的行為

    2024年02月06日
    瀏覽(19)
  • 設(shè)計(jì)模式-原則篇-01.開閉原則

    設(shè)計(jì)模式-原則篇-01.開閉原則

    ? 可以把設(shè)計(jì)模式理解為一套比較成熟并且成體系的建筑圖紙,經(jīng)過多次編碼檢驗(yàn)?zāi)壳翱磥硎褂眯Ч€不錯(cuò)的軟件設(shè)計(jì)方案。適用的場(chǎng)景也比較廣泛,在使用具體的設(shè)計(jì)模式之前先要學(xué)習(xí)軟件設(shè)計(jì)的基礎(chǔ) “軟件設(shè)計(jì)原則”,后面的23個(gè)設(shè)計(jì)模式都是遵從“軟件設(shè)計(jì)原則演變而

    2024年02月09日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包