博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
程序设计原则——LSP
阅读量:5269 次
发布时间:2019-06-14

本文共 695 字,大约阅读时间需要 2 分钟。

  LSP原则,又叫做里氏替换原则(Liskov Substitution Principle),一个比较准确的定义如下:

Function's that ues point or references tobase classes must be able to use objects of derived classes without knowing it.

所有引用基类的地方必需能透明的使用其子类对象

  在使用LSP原则时,只要在父类能出现的地方必需能透明地使用其子类对象,而且替换为子类也不会产生任何错误和异常,使用者不用知道是父类还是子类,但子类出现的地方父类未必能适应。

  在类中调用其它类时务必要使用父类或接口,如果不能使用父类或接口,则说明类的设计已经违背了LSP原则。

 

downcast is unsafe  向下转型是不安全的

 

  在重载时,当子类较父类的输入参数类型的范围扩大,子类代替父类传递到调用者中子类的方法都不会被执行。

  子类中方法的前置条件必须比超类中被覆写的方法的前置条件相同或更为宽松。

 

  子类继承父类后,无论是overried还是overload,其返回值需小于或等于父类返回值,而override实现父类方法时输入参数可以扩大。子类在没有override父类的方法的前提下,子类方法被执行会引起业务逻辑的混乱,因此在项目中采用LSP原则时应尽量避免子类的个性。

 

Liskov Substitution Principle

转载于:https://www.cnblogs.com/aladdin-light/p/5480000.html

你可能感兴趣的文章
linux 安装 ArcSDE10.1
查看>>
SQL Server比较2table字段的差异
查看>>
.net 获取CPU频率 内存 磁盘大小,域名 端口 虚拟目录等
查看>>
angular vue通过node启动项目局域网内关闭防火墙无法访问的解决办法
查看>>
pc 媒体查询
查看>>
angular6 增加webpack配置 亲测可用
查看>>
Git 忽略提交 .gitignore
查看>>
div或者p标签单行和多行超出显示省略号
查看>>
angular http 节流
查看>>
autoprefixer
查看>>
kkFileView在centos7上安装
查看>>
Elasticsearch 滚动重启 必读
查看>>
win8快捷键
查看>>
mysql explain执行计划详解
查看>>
Docker安装GitLab
查看>>
正向代理、反向代理、透明代理的区别
查看>>
git统计报告
查看>>
字符串朴素匹配 BF法
查看>>
django-模版学习
查看>>
https原理和使用Certbot配置https数字证书
查看>>