面向对象设计原则--里氏替换原则(LSP)

原创 2007年10月08日 16:38:00
求:子类可以替换父类并且出现在父类能够出现的任何地方

这个原则也是在贯彻GOF倡导的面向接口编程!
在这个原则中父类应尽可能使用接口或者抽象类来实现!

子类通过实现了父类接口,能够替父类的使用地方!
通过这个原则,我们客户端在使用父类接口的时候,通过子类实现!
意思就是说我们依赖父类接口,在客户端声明一个父类接口,通过其子类来实现
这个时候就要求子类必须能够替换父类所出现的任何地方,这样做的好处就是,在根据新要求扩展父类接口的新子类的时候而不影响当前客户端的使用!
说到这,肯定会有人认为和上一篇讲的OCP的作用有点类似,其实这些面向对象的基本原则就2条:1面向接口编程,而不是面向实现 2用组合而不主张用继承!
这些基本的原则在实现方法也有个共同层次,就是使用中间接口层!以此来达到类对象的低偶合,也就是抽象偶合!

呵呵,不知道这样的表述是否能让人听明白!我总觉得对一个新事物的概念是否完全理解,最基本标准就是自己是否能够讲解的让自己明白!所以这些学习笔记中,我试图使自己作为一个老师的角色把对新事物的想法和心得描述出来,再让自己以一个学生的角度去试图理解它,如果能明白,就证实自己已经这个新事物有几分了解,至少没误解!  

LSP里氏替换原则----正方形不是长方形和鸵鸟不是鸟的测试程序

//面向对象设计原则:LSP里氏替换原则 //正方形不是长方形的测试程序 #include using namespace std; //长方形类Rectangle class Rectangl...
  • smallgyy
  • smallgyy
  • 2013年07月23日 14:31
  • 1433

UML—里氏替换原则

例子: 测试代码: #include using namespace std; //书类Book class Book { private: int width; int he...
  • LY_624
  • LY_624
  • 2016年11月08日 19:46
  • 269

面向对象设计原则详解:里氏替换原则

定义:子类型必须能替换掉他们的基本类型。只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。但是,反过来就不行了,有子类出现的地方,父...
  • nodeman
  • nodeman
  • 2015年07月31日 10:06
  • 774

设计模式六大原则——里氏替换原则(LSP)

概述        里氏替换原则(LSP,Liskov Substitution Principle)是关于继承机制的原则,是实现开放封闭原则的具体规范,违反了里氏替换原则必然违反了开放封闭原则。  ...
  • u010853701
  • u010853701
  • 2014年05月25日 21:35
  • 3496

面向对象的六大原则之 —— 里氏替换原则

学习了何红辉、关爱民写的《Android设计模式》,对于面向对象的六大原则有进一步的理解,特此根据自己的理解记录总结一下 什么是里氏替换原则 面向对象的语言有三大特性:封装、继承、多态,里氏替换原则就...
  • asd2603934
  • asd2603934
  • 2016年03月01日 17:13
  • 1929

面向对象六大原则(三):里氏替换原则

面向对象程序设计(OOP)的六大原则是我对《Android源码设计模式解析与实战》的读后笔记。要设计出灵活又便于维护的软件,必须要求我们的设计能力与代码质量高,也就是我们所谓的编程思想。因此,我们需以...
  • Loften_93663469
  • Loften_93663469
  • 2015年12月12日 22:46
  • 759

设计原则(二)里氏替换原则(LSP)

一、什么是里氏替换原则 里氏替换原则的严格表达是:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都替换成o2时,程序P的行为没有变化,那么类型...
  • xingjiarong
  • xingjiarong
  • 2015年11月29日 11:03
  • 2582

PHP设计模式——六大原则

声明:本系列博客参考资料《大话设计模式》,作者程杰。       一般认为遵从以下六大原则的代码是易扩展可复用的代码:                                      ...
  • jhq0113
  • jhq0113
  • 2015年04月06日 23:18
  • 3249

面向对象设计原则--里氏替换原则(LSP)和依赖倒置原则(DIP)

面向对象设计原则–里氏替换原则(LSP)和依赖倒置原则(DIP)tags:设计模式 LSP–inheritance should ensure that any property proved a...
  • qq_22841811
  • qq_22841811
  • 2016年09月29日 23:18
  • 239

设计模式六大原则:里氏替换原则(五)

转载请标明:http://blog.csdn.net/liulongling/article/details/51383159 面向对象其它六大原则 单一职责原则-带你走梦幻西游(一) 依赖...
  • liulongling
  • liulongling
  • 2016年05月12日 12:42
  • 2113
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面向对象设计原则--里氏替换原则(LSP)
举报原因:
原因补充:

(最多只允许输入30个字)