您现在的位置是:首页» windows系统» 里氏代换原则和里氏替换原则,lsp里氏代换原则

里氏代换原则和里氏替换原则,lsp里氏代换原则

2023-10-15 03:42:17
今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!1.里氏代换原则:里氏代换原则是一种经典的面向对象设计原则,提出和总结了一个非常重要的软件开发准则,它是指:”任何基类可以出现的地方,子类一定可以出现的,而且子类的对象也可以替换为父类的对象”。里氏代

今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!

1.里氏代换原则:

里氏代换原则是一种经典的面向对象设计原则,提出和总结了一个非常重要的软件开发准则,它是指:”任何基类可以出现的地方,子类一定可以出现的,而且子类的对象也可以替换为父类的对象”。里氏代换原则是软件设计良好的一个基本准则,它表明:子类可以自由使用父类中已有的行为和属性,而不会破坏现有系统的正确性。

2.里氏代换原则的定义

里氏代换原则由里氏在20世纪20年代提出,它是一个通用的编程原则,亦可称为里氏继承原则、Liskov Subsitution Principle(LSP)。里氏代换原则要求:当使用继承时,任何派生类(子类)都必须能够替换掉他们的基类(父类),而不影响程序的正确性。

3.里氏代换原则的理解

里氏代换原则提出的基本思想是:如果一个软件实体(类)A是由另一个实体B派生而来的,则使用A的程序单元可以替换使用B的程序单元时,A也可以替换成B。也就是说,在软件开发中,父类对象可以替换成其子类对象,而不会影响程序正确性。换言之,里氏代换原则是一种开闭原则,它要求程序中应当允许增加子类,但子类的替换,不能破坏程序的正确性。

4.里氏代换原则的优势

里氏代换原则是OOP编程中非常重要的一个原则,它能有效地提高系统的可扩展性、可维护性以及可重用性,降低系统中类之间的耦合度,让设计更加清晰;从而使软件运行更加稳定,减少维护和更新的成本。里氏代换原则同时也增强了系统的可移植性,从而更容易和其他系统集成。

5.实例

以一个最简单的例子来说明里氏代换原则。假设有一个长方形类Rectangle,以及一个圆形类Circle;两个类可能都有类似的方法获取它们的面积、周长等信息。因此,出现这种情况时,两个类可以都派生于一个抽象类,这个抽象类中可以定义所有的共有的属性或行为,而具体的实现则是每一个子类自己负责,这里可以用里氏代换原则来实现,即在任何要求使用Shape类型的地方,都可以使用Rectangle或Circle类型,而这并不会影响到原有程序的正确性。

1、里氏代换原则(LSP):里氏代换原则是面向对象设计原则之一,指出任何基类可以出现的地方,子类一定可以出现。里氏代换原则是对“开闭”原则的补充,它使程序模块更具有松耦合性。

2、历史背景:里氏代换原则是由著名的面向对象设计之父Barbara Liskov(BarbaraLiskov)提出的,并以其的名字命名。1980年,Liskov提出了“behavioralsubtyping”阐述了这一原则的概念。1988年,她在计算机领域再次提出了LSP原则。

3、定义:里氏替换原则(Liskovsubstitutionprinciple,简称LSP)指型定义:如果S是T的子类型,那么对所有类型T的对象o,都有o属于S,那么对所有类型S的对象o,都有类型T的对象也能出现。

4、里氏代换原则的基本要求:

(1)子类必须完全实现父类的方法:也就是说,子类覆盖父类的所有方法。子类可以有自己的个性,也可以增加新的方法,但不能改变父类的原有方法的语义。

(2)重写父类方法时要保证调用者的正确性:子类重新实现父类的方法时,一定要保证调用者看来父类似乎在执行一样的操作。

(3)子类仅可以扩展父类的方法:任何父类可以实现的方法,子类都要实现,而且不可以做出超出它承担的职责的行为。

5、LSP的优点:

(1)可扩展性:使用LSP,可以使新的子类继承原有父类而有所扩展,同时无需改变原有父类。

(2)减少子类维护的代码量:使用LSP,可以减少子类重复复写父类的代码量。

(3)降低系统的复杂性:使用LSP,可以降低类之间的耦合,提高系统的灵活性,使系统更具有可维护性。

6、开发实践中应用LSP的技巧:

(1)面向抽象编程:应该在程序的设计阶段给出抽象的接口应用,而不是实现细节,以便针对各种被需求的情况能够都能扩展和对各种情况进行定义。

(2)分层使用:在设计分层时,应该逐层从父类定义行为,然后在子类中进行实现,在每一层行为的实现中应考虑“一般抽象而不要出现特殊情况的抽象”的思想。

(3)使用抽象工厂模式:在采用抽象工厂模式时,应该根据里氏替换原则,即实现的子类对象用父类的对象可以替换,而抽象工厂模式中的“抽象工厂”就是里氏替换原则的体现。

7、LSP的缺点:

(1)LSP无法识别类型句法和方法声明:由于LSP无法识别代码中某个类型句法和方法声明,有时将以不符合LSP的代码封装成可维护子类可能会导致更多的错误。

(2)里氏替换原则只对对象有效:里氏替换原则仅对对象有效,对于继承以及重载的方法是无从谈起的

wWw.Xtw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com

标签: 代换 里氏 原则