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

自建站有哪些站点soho 网站建设

自建站有哪些站点,soho 网站建设,wordpress 淘宝主题,有服务器怎么做网站在软件开发的世界中#xff0c;设计模式是解决常见问题的最佳实践。其中#xff0c;里氏代换原则#xff08;Liskov Substitution Principle#xff0c;LSP#xff09;是面向对象设计的基本原则之一#xff0c;它强调了在软件中子类型必须能够替换其基类型#xff0c;而… 在软件开发的世界中设计模式是解决常见问题的最佳实践。其中里氏代换原则Liskov Substitution PrincipleLSP是面向对象设计的基本原则之一它强调了在软件中子类型必须能够替换其基类型而不会导致任何不期望的行为或错误。 一、里氏代换原则的含义 里氏代换原则是由计算机科学先驱Barbara Liskov提出的它的基本思想是如果程序使用了一个基类的接口来创建对象那么这些对象可以被它们的子类对象所替换而不会破坏程序的正确性。换句话说一个软件实体如果使用的是一个基类的话那么也一定适用于子类前提是子类正常地继承了基类的共有属性。 二、如何遵循里氏代换原则 1️⃣继承与派生 在面向对象的编程中子类继承父类的属性和方法是一种常见的做法。为了遵循里氏代换原则子类必须能够完全代替父类而不会引发任何问题。这意味着子类必须继承父类的所有非私有属性和方法并且不能违反父类的任何契约。 2️⃣方法重写 在子类中重写父类的方法时必须保证重写后的方法具有与父类方法相同的行为。这包括方法的签名、返回类型和异常等必须与父类方法一致。此外子类方法的访问修饰符不能比父类方法的访问修饰符更严格。 3️⃣行为一致性 为了遵循里氏代换原则子类必须保持与父类一致的行为。这意味着子类不能违反父类的任何预期行为包括对方法的调用顺序和异常的处理等方面。 三、里氏代换原则在实践中的应用 假设我们有一个基类Shape和它的两个子类Rectangle和SquareShape有一个计算面积的方法calculateArea。 Shape形状父类 abstract class Shape {abstract double calculateArea(); } Rectangle矩形类 class Rectangle extends Shape {double width;double height;Rectangle(double width, double height) {this.width width;this.height height;}Overridedouble calculateArea() {return width * height;} } Square正方形类 class Square extends Shape {double side;Square(double side) {this.side side;}// 违反LSP的情况Overridedouble calculateArea() {if (side 0) {throw new IllegalArgumentException(Side cannot be negative);}return side * side;} } 在上面的例子中Square类的calculateArea方法违反了LSP因为它添加了一个额外的约束——不允许边长为负数而这个约束在Shape基类中是没有的。如果某处代码期待一个Shape对象并调用其calculateArea方法当传入一个边长为负数的Square对象时将会抛出异常这就破坏了原有的行为。 如何调整 为了让Square遵守LSP我们应该确保它不引入额外的前置条件或后置条件而是维持与基类相同的接口契约。在这里我们可以将边长的合法性检查放在构造函数中而不是计算面积的方法中。 调整后Square正方形类 class Square extends Shape {double side;Square(double side) {if (side 0) {throw new IllegalArgumentException(Side cannot be negative);}this.side side;}Overridedouble calculateArea() {return side * side;} } 现在无论何时传入Shape的实例无论是Rectangle还是Square调用calculateArea方法都不会违反原有的接口约定遵循了里氏代换原则。 四、总结 里氏代换原则是面向对象设计的基本原则之一它强调了子类型必须能够替换其基类型而不会导致任何不期望的行为或错误。遵循里氏代换原则可以提高代码的复用性、增强软件的可维护性和健壮性。在实际开发中我们应该尽可能地遵循里氏代换原则以确保软件的稳定性和可扩展性。
http://www.zqtcl.cn/news/179169/

相关文章:

  • 有网站怎样做推广精品网站源码资源程序下载
  • 怎么建设淘宝联盟的网站梧州网站设计公司
  • 注册查询官方网站网站建设pad版本是什么
  • 做网站先得注册域名吗网站cdn+自己做
  • 甘肃省建设厅网站非织梦做的网站能仿吗
  • 天元建设集团网站苏州门户网站建设
  • 建设网站需要学习什么语言福州优化搜索引擎
  • 网站开发大致多少钱手机上怎么制作网站吗
  • 重庆网站seo营销模板wordpress学习 知乎
  • 桃子网站logowordpress post meta
  • 做网站一般需要什么青岛网络推广
  • 东莞网站建设 光龙wordpress4.6 nodejs
  • 宁海县建设局网站网站建设行业前景
  • 2003网站的建设谷歌seo新手快速入门
  • 网站建设服务开发网页制作下载链接怎么做
  • 网站更改域名河源建网站
  • 陕西培训网站建设校园网站建设目的
  • 做网站赚钱容易吗怎么创建自己网站平台
  • 肥料网站建设江门好的建站网站
  • 女朋友在互联网公司做网站规范网络直播平台的可行性建议
  • wordpress酷站微信推广平台自己可以做
  • 下载类网站如何做wordpress 文章分页 插件
  • 什么做书籍的网站好梅县区住房和城乡规划建设局网站
  • 网站开发的研究方法网站内容规划流程
  • 什么网站可以做数据调查深圳住房城乡建设局网站
  • 民治网站建设yihe kj程序外包公司
  • 男人与女人做视频网站wordpress无法上传图片
  • 二手手表回收网站海外推广渠道有哪些
  • 怎么把地图放到网站上如何做色流量网站
  • 常见的导航网站有哪些郑州核酸vip服务