
目录
一、里氏替换原则定义
在面向对象的程序设计中,里氏替换原则(Liskov Substitution principle)是对子类型的特别定义。它由芭芭拉·利斯科夫(Barbara Liskov)在1987年在一次会议上名为“数据的抽象与层次”的演说中首先提出。
里氏替换原则的内容可以描述为: “派生类(子类)对象可以在程序中代替其基类(超类)对象。” 以上内容并非利斯科夫的原文,而是译自罗伯特·马丁(Robert Martin)对原文的解读。
芭芭拉·利斯科夫与周以真(Jeannette Wing)在1994年发表论文并提出以上的Liskov代换原则。
简单来说,子类可以扩展父类的功能,但不能改变父类原有的功能,也就是说,在子类继承父类时,除添加新的方法且完成新增功能外,尽量不要重写父类的方法。
二、里氏替换原则的作用
- 里氏替换原则是实现开闭原则的重要方式之一;
- 解决了继承中重写父类造成的可复用性变差的问题;
- 是动作正确性的保证,即类的扩展不会给已有的系统引入新的错误,降低了出错的可能性。
- 加强程序的健壮性,同时变更时可以做到非常好的兼容性,提高程序的维护性、可扩展性、降低需求变更时引入的风险;
三、违背原则场景
灵珠和魔丸本是一体,被元始天尊提炼了出来,灵珠将为人民服务,魔丸则会危害世界,所以元始天尊将这个艰巨的任务交给太乙真人,让灵珠投胎到“根正苗红”的李靖家,魔丸动用天劫咒,三年后摧毁。
可是阴差阳错
本文详细介绍了里氏替换原则(LSP),强调子类可以扩展父类功能但不应改变原有功能。通过灵珠和魔丸的故事,阐述了违背原则可能导致的问题,并提供了一个抽象人物类和哪吒、敖丙子类的例子来展示如何遵循该原则。遵循LSP能提高代码的健壮性、可维护性和扩展性。
订阅专栏 解锁全文
1183

被折叠的 条评论
为什么被折叠?



