当前位置: 首页 > news >正文

四会市网站建设wordpress 公式 文章

四会市网站建设,wordpress 公式 文章,推广游戏怎么拉人最快,酒泉网站建设服务定义 里氏替换原则#xff08;Liskov Substitution Principle, LSP#xff09;确保继承表现为一种类型扩展而非类型的重定义。具体而言#xff0c;如果类型 S 是类型 T 的子类型#xff0c;则类型 T 的对象可以在程序中被类型 S 的对象替换#xff08;即#xff0c;类型…定义 里氏替换原则Liskov Substitution Principle, LSP确保继承表现为一种类型扩展而非类型的重定义。具体而言如果类型 S 是类型 T 的子类型则类型 T 的对象可以在程序中被类型 S 的对象替换即类型 S 的对象可以替代类型 T 的对象而不改变该程序的期望行为。 应用场景 LSP 应用于任何基于继承的设计中确保子类的行为符合父类的预期。它是多态性的核心原则用于 类库设计确保继承层次适当框架设计确保派生类遵循基类契约任何利用继承和多态性的软件设计中 示例与反例 具体示例 以下 Java 代码演示了一个遵循了 LSP 的类层次结构的简单例子。 // 父类 class Transport {void startEngine() {// 启动发动机的通用操作} }// 子类 class Car extends Transport {Overridevoid startEngine() {// 实现启动汽车发动机的特定操作但保持了 startEngine 的语义} }// 子类 class ElectricCar extends Transport {Overridevoid startEngine() {// 电动汽车启动“发动机”的操作可能是启动电池等但外部表现为“启动”} }// 该函数接受 Transport 类型的对象 void operateTransport(Transport transport) {transport.startEngine();// 执行其他操作 }在这个例子中无论 operateTransport 方法传入的是 Car 对象还是 ElectricCar 对象都能够正确地“启动发动机”符合 LSP。 具体反例 以下 Java 代码演示了违反 LSP 的类层次结构的例子。 // 父类 class Bird {void fly() {// 实现飞行} }// 子类 class Eagle extends Bird {// 鹰的飞行继承自 Bird没有违反 LSP }// 子类 class Ostrich extends Bird {Overridevoid fly() {throw new UnsupportedOperationException(鸵鸟不会飞);} }// 该函数接受 Bird 类型的对象 void makeBirdFly(Bird bird) {bird.fly();// 其他依赖于飞行的操作 }在这个反例中makeBirdFly 方法期望传入的 Bird 类型的对象都能飞行。然而Ostrich鸵鸟类重写了 fly 方法并抛出了一个异常因为鸵鸟实际上是不会飞的。这就违反了 LSP因为 Ostrich 对象不能替换方法中的 Bird 对象而不改变程序的期望行为。 原则间的权衡与冲突 与开闭原则OCPLSP 和 OCP 都强调扩展而非修改但在某些情况下为了满足 LSP可能需要修改现有的类结构。与单一职责原则SRP有时为了满足 LSP我们可能会将更多的责任放到子类这可能会与 SRP 冲突。 设计原则的局限性 过度强调 LSP 可能导致过度设计增加了不必要的抽象层次。在某些情况下过分遵循 LSP 可能导致性能问题因为可能需要在运行时进行更多的类型检查。 总结与建议 正确使用继承在使用继承时设计子类时要确保它们能够替换父类。不要仅仅因为两个类似乎有共性就使用继承。优先使用组合在可能的情况下优先使用组合而非继承这可以减少不必要的依赖和耦合。设计可替换的组件设计时应确保组件可以在不影响程序整体行为的情况下被替换。避免重写非抽象方法子类应避免重写父类的非抽象方法除非是为了修复错误。增加测试确保父类和子类都能通过相同的单元测试这有助于验证 LSP 是否得到满足。文档和契约明确文档中每个类和方法的责任使用契约如Java中的接口来定义可替换的行为。
http://www.pierceye.com/news/634922/

相关文章:

  • 做网站需要哪些东西网站设计报价单模板
  • 合肥家居网站建设怎么样网站建设与维护中
  • 淘宝app网站建设做网页设计可以参考哪些网站
  • 合作建设网站协议江门seo计费管理
  • 企业管理网站模板保定网站制作设计哪个公司好
  • 物流网站查询优秀设计赏析网站
  • 设计分享网站网站建设资料需要公司提交的吗
  • 广州网站站建设培训html用户登录注册页面代码
  • 网站建设怎么购买域名怎么屏蔽2345网址导航
  • 物流网站建设推广wordpress安全配置文件
  • 做网站用哪个服务器不用备案宣传网站设计
  • 网站建设哪种语言好电子商务型网站建设
  • 广州网站建设平台网站怎么做必须交钱吗
  • 做网站费免图片网站背景图网站
  • 上海电商网站开发公司门户网站建设 总结
  • 网站产品类别顺序如果修改wordpress多城市seo
  • 做网站托管的好处公司erp系统
  • 管局备案网站高端定制网站的特点
  • 成都极客联盟网站建设公司有没有帮别人做网站
  • 宝安专业网站设计公司公众号小程序怎么做
  • 郑州网站优化公司爱范儿 wordpress 主题
  • 电商网站建设书宣传片拍摄技巧
  • 珠海的门户网站有哪些app开发是什么专业
  • 网站建设推广报价简单网页素材
  • 建设企业官方网站的流程37玩手游官网平台
  • 南通网站建设方案开发网站建设运营公众号运营合同
  • 制作网站语言seo推广软件怎样
  • 企业网站建设的三种方式wordpress 导航高亮
  • 个人 建设图片分享网站网站开发设计步骤
  • 温州做阀门网站公司网站的建设时间怎么查