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

网站开发常用哪几种语言网站建设服务收费标准

网站开发常用哪几种语言,网站建设服务收费标准,如何建立自己的网站步骤,苏州高端网站建设设计公司哪家好1.概念 里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说#xff0c;任何基类可以出现的地方#xff0c;子类一定可以出现。 LSP是继承复用的基石#xff0c;只有当衍生类可以替换掉基类#xff0c;软件单位的功能不受到影… 1.概念 里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说任何基类可以出现的地方子类一定可以出现。 LSP是继承复用的基石只有当衍生类可以替换掉基类软件单位的功能不受到影响时基类才能真正被复用而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现所以里氏代换原则是对实现抽象化的具体步骤的规范。 通俗的讲 1.所有引用基类的地方必须能透明的使用其子类的对象。其父类可以替换成子类而子类不能替换成父类 2.子类可以扩展父类的功能但不能改变父类原有的功能 2.举例 例如鸟一般都会飞行如燕子的飞行速度大概是每小时 120 千米。但是新西兰的几维鸟由于翅膀退化无法飞行。假如要设计一个实例计算这两种鸟飞行 300 千米要花费的时间。显然拿燕子来测试这段代码结果正确能计算出所需要的时间但拿几维鸟来测试结果会发生“除零异常”或是“无穷大”明显不符合预期类图如下 未遵守里氏替换原则 package com.example.demo.principle;public class LSPtest {public static void main(String[] args) {Bird bird1 new Swallow();Bird bird2 new BrownKiwi();bird1.setSpeed(120);bird2.setSpeed(120);System.out.println(如果飞行300公里);try {System.out.println(燕子将飞行 bird1.getFlyTime(300) 小时.);System.out.println(几维鸟将飞行 bird2.getFlyTime(300) 小时。);} catch (Exception err) {System.out.println(发生错误了!);}} }//鸟类 class Bird {double flySpeed;public void setSpeed(double speed) {flySpeed speed;}public double getFlyTime(double distance) {return (distance / flySpeed);} }//燕子类 class Swallow extends Bird { }//几维鸟类 class BrownKiwi extends Bird {public void setSpeed(double speed) {flySpeed 0;}}------------------ 运行结果 --------------------------如果飞行300公里 燕子将飞行2.5小时. 几维鸟将飞行Infinity小时。Process finished with exit code 0 这个设计存在的问题 几维鸟类重写了鸟类的 setSpeed(double speed) 方法这违背了里氏替换原则。 燕子和几维鸟都是鸟类但是父类抽取的共性有问题几维鸟的的飞行不是正常鸟类的功能需要特殊处理应该抽取更加共性的功能。 遵守里氏替换原则 优化 取消几维鸟原来的继承关系定义鸟和几维鸟的更一般的父类如动物类它们都有奔跑的能力。几维鸟的飞行速度虽然为 0但奔跑速度不为 0可以计算出其奔跑 300 千米所要花费的时间。 package com.example.demo.principle;public class Lsptest2 {public static void main(String[] args) {Animal animal1 new Bird();Animal animal2 new BrownKiwi();animal1.setRunSpeed(120);animal2.setRunSpeed(180);System.out.println(如果奔跑300公里);try {System.out.println(鸟类将奔跑 animal1.getRunSpeed(300) 小时.);System.out.println(几维鸟将奔跑 animal2.getRunSpeed(300) 小时。);Bird bird new Swallow();bird.setFlySpeed(150);System.out.println(如果飞行300公里);System.out.println(燕子将飞行 bird.getFlyTime(300) 小时.);} catch (Exception err) {System.out.println(发生错误了!);}} }/*** 动物类抽象的功能更加具有共性*/class Animal{Double runSpeed;public void setRunSpeed(double runSpeed) {this.runSpeed runSpeed;}public double getRunSpeed(double distince) {return distince/runSpeed;}}/*** 鸟类继承动物类*/class Bird extends Animal{double flySpeed;public void setFlySpeed(double flySpeed) {this.flySpeed flySpeed;}public double getFlyTime(double distince) {return distince/flySpeed;}}/*** 几维鸟继承动物类*/class BrownKiwi extends Animal{}/*** 燕子继承鸟类 飞行属于燕子的特性*/class Swallow extends Bird{}--------- 运行结果 ----------------- 如果奔跑300公里 鸟类将奔跑2.5小时. 几维鸟将奔跑1.6666666666666667小时。 如果飞行300公里 燕子将飞行2.0小时. 3.优点 代码共享减少创建类的工作量每个子类都拥有父类的方法和属性 提高代码的重用性 提高代码的可扩展性 提高产品或项目的开放性 4.缺点 继承是侵入性的。只要继承就必须拥有父类的所有属性和方法 降低代码的灵活性。子类必须拥有父类的属性和方法让子类自由的世界中多了些约束 增强了耦合性。当父类的常量、变量和方法被修改时需要考虑子类的修改而且在缺乏规范的环境下这种修改可能带来非常糟糕的结果————大段的代码需要重构。
http://www.w-s-a.com/news/182131/

相关文章:

  • 网站服务器需要多大设计网站公司开发
  • asp 网站权限设计做网站业务员
  • 做棋牌网站违法嘛网络服务网络推广
  • 专门做推广的网站吗免费建域名网站
  • 在百度做网站株洲网站平台搭建
  • 用node做的网站南宁网站定制开发
  • 做刷单网站犯法吗wordpress depth
  • 潍坊青州网站建设少儿编程app
  • 表白网站制作源代码自己怎么免费做网站网页
  • 开源网站建设是什么工作个人虚拟网站
  • 网站制作的一般过程优化关键词排名公司
  • 如何使用阿里云建设网站网站两边广告
  • 互联网信息服务小红书seo是什么意思
  • 深圳市南山区建设局网站公司简介网页
  • 免费小程序制作软件爱站网站seo查询工具
  • 承接电商网站建设缔烨建设公司网站
  • 网站运营介绍十大国外室内设计网站
  • 网站建设完毕后怎么加后台电影购买网站怎么设计
  • 空间ip地址访问网站音乐分享 wordpress
  • 做网站一单能挣多少wordpress主题文件夹在哪
  • 视频社区app源码台州优化网站
  • 保定高端网站建设做微商好还是开网站好
  • 有什么方法在淘宝发布网站建设设计wordpress评分
  • 自己做的网站怎么爬数据库酷播wordpress
  • 广州哪家做网站还可以黑龙江省建设厅网站的电话
  • 青海省高等级公路建设管局网站国内做led灯网站有
  • 做网站成功建设银行网站网址
  • 自动生成网站上海十大活动策划公司
  • 企业网站建设源码HTML论述市场营销对网站设计的影响
  • 网站设计常见问题建设工程网上质检备案网站