文章目录

  • 概述
  • 一、里氏替换原则(Liskov Substitution Principle ,LSP)
  • 二、实例
  • 三、is和as
  • 四、其他设计原则
  • 总结

概述

里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。

LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。

里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。


一、里氏替换原则(Liskov Substitution Principle ,LSP)

概念:指的是任何基类可以出现的地方,子类一定可以出现。
理解:父类对象装子类对象。
作用:方便进行对象存储和管理。

二、实例


三、is和as

is:判断一个对象是否是指定类对象。返回值:bool

是为真,不是为假

as:将一个对象转换为指定类对象。返回值:指定类型对象

成功为对象,失败为null

四、其他设计原则

单一职责原则(SRP-Single Responsibility Principle)

指一个类的功能要单一,不能包罗万象。比如一个人,分配的工作不能太多,不然一天到晚忙的要死,但效率会很低下。

开放封闭原则(OCP-Open Close Principle)

一个模块在拓展性方面应该是开放的而在更改性方面应该是封闭的。比如:一个网络模块,原来只有服务端功能,而现在要加入客户端功能,那么应当在不修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。

依赖倒置原则(DIP-Dependency Inversion Principle)

上层逻辑依赖下层逻辑。假设A是B的父类,但A需要用到B的功能,这个时候,A不能直接使用A中的具体方法和类,而是需要在A中定义一个抽象接口,并由B来实现这个抽象接口,A只需要使用这个抽象接口,就达到了依赖倒置的目的,A也解出了对B的依赖,反过来是B依赖于A定义的抽象接口。

接口分离原则(ISP-Interface Segregation Principle)

​模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来

总结

里氏替换原则
概念:父类容器装子类对象
作用:方便进行对象的存储和管理
使用:is和as
is 用于判断 判断一个对象是否是指定类对象
as 用于转换 讲一个对象转换为指定类对象

C#封装-里氏替换原则相关推荐

  1. java 重写方法 访问权限_为何Java中子类重写方法的访问权限不能低于父类中权限(内含里氏替换原则)...

    为何Java中子类重写方法的访问权限不能低于父类中权限 因为 向上转型及Java程序设计维护的原因 例: 假设一个父类A 拥有的方法public void setXXX(){}可以被其他任意对象调用这 ...

  2. 《设计模式》杂记之里氏替换原则

    在这篇博文中,我想把自己学习过的里氏替换原则一些好知识点分享给大家.首先我想把继承的一下优缺点给大家分享一下,然后再引出里氏替换原则吧!<?xml:namespace prefix = o ns ...

  3. 软件设计的七大原则 --开闭原则 里氏替换原则 依赖倒置原则

    在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 7 条原则来开发程序,从而提高软件开发效率.节约软件开发成本和维护成本. 这 7 种设计原则是软件设计 ...

  4. 设计模式|LSP(里氏替换)原则

    软件质量保障 专注测试圈,自动化测试.测试平台开发.测试新技术.大厂测试岗面经分享, 可以帮忙内推BATJ等大厂!欢迎加VX沟通交流: ISTE1024 在面向对象的语言中,继承是非常优秀的语言机制, ...

  5. 深入理解JavaScript系列(8):S.O.L.I.D五大原则之里氏替换原则LSP

    前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第3篇,里氏替换原则LSP(The Liskov Substitution Principle ). 英文原文:http ...

  6. 【转】深入理解JavaScript系列(8):S.O.L.I.D五大原则之里氏替换原则LSP

    前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第3篇,里氏替换原则LSP(The Liskov Substitution Principle ). 英文原文:http ...

  7. 嘻哈说:设计模式之里氏替换原则

    1.定义 按照惯例,首先我们来看一下里氏替换原则的定义. 所有引用基类(父类)的地方必须能透明地使用其子类的对象. 通俗的说,子类可以扩展父类功能,但不能改变父类原有功能. 核心思想是继承. 通过继承 ...

  8. Java设计模式之里氏替换原则(Liskov Substitution principle)

    2019独角兽企业重金招聘Python工程师标准>>> Java是面向对象的语言,那么什么是面向对象程序设计呢? 面向对象程序设计(英语:Object-oriented progra ...

  9. 设计原则——里氏替换原则

    1.全称 liskov substitution principle 缩写为:LSP 2.解释 继承必须确保超类所拥有的性质在子类中仍然成立 里氏替换原则主要阐述了有关继承的一些原则,也就是什么时候应 ...

最新文章

  1. CString工作原理和常见问题分析
  2. 大话风险投资的风险-不只是独角戏(上)
  3. HDU-2102 A计划 BFS
  4. 【领奖啦】新年新客见面礼抽奖活动中奖名单出炉!
  5. 删除文件时,提示没权限删除文件怎么办
  6. python人脸识别程序如何嵌入到app_只用Python就能写安卓,简单几步实现人脸识别的App...
  7. java foreach 实现原理
  8. MySQL - 行锁 表锁 乐观锁 悲观锁 读锁 写锁
  9. HDU2094 产生冠军【set】
  10. Android知识散点
  11. 一秒钟世界上会发生多少事_一秒之中会发生什么
  12. input[type=radio]自定义样式
  13. C语言程序员面试100题,c语言面试最必考的十道试题,求职必看!!!
  14. 页面置换算法 (全)
  15. 实现全站http到https的301转向(实测有用)
  16. 陪读21:《像利弗莫尔一样交易·买在关键点》——板块时机
  17. 数字货币期货现货交易技巧,把握关键进场的买入点!(纯干货)
  18. 让人心动的jQuery插件和HTML5动画
  19. pikachu XSS Cross-Site Scripting(皮卡丘漏洞平台通关系列)
  20. JAVA 实现《角色扮演侦探》游戏

热门文章

  1. x64+dbgview 中如何显示kdPrint的几种方法总结
  2. 方便的记事本app有哪些 快捷方便的生活记事软件推荐
  3. 度目视频分析盒子-解决方案-配合门禁使用介绍
  4. 详细介绍外观设计专利的申请流程和费用
  5. 笔试真题解析分享|小红书3.26第三题解题思路
  6. C语言程序——输出字符
  7. chessboard
  8. 统计学基础专栏02---数据和抽样分布
  9. vim 在linux下中如何设置显示行数
  10. 2022年_蓝桥杯_省赛_4月23日真题_第十三届_python_第六题_小蓝对角线找奖品