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

为公益组织做网站我的网站打不开

为公益组织做网站,我的网站打不开,青岛室内设计学校,百度怎么发布自己的广告LSP强调子类必须能够替换父类。即子类应该具有与父类相同的行为和功能,而不仅仅是继承父类的属性和方法。LSP是对继承机制的约束规范、是指导接口与实现的设计原则。 LSP关键点 前置条件不能强化:子类方法的参数类型必须与父类相同或者更为宽松。后置条…

LSP强调子类必须能够替换父类。即子类应该具有与父类相同的行为和功能,而不仅仅是继承父类的属性和方法。LSP是对继承机制的约束规范、是指导接口与实现的设计原则。

LSP关键点

  • 前置条件不能强化:子类方法的参数类型必须与父类相同或者更为宽松
  • 后置条件不能弱化:子类方法的返回值类型必须与父类相同或者是其子类型
  • 不变量要保持:子类不能破坏父类原有的约束条件。
  • 异常类型需兼容:子类方法抛出的异常必须是父类方法抛出异常的子类型。

示例代码

不符合LSP的代码

class Shape {  void draw() {  System.out.println("Drawing a shape");  }  
}
class Circle extends Shape {void draw() {System.out.println("Drawing a circle");  }
}

使用LSP优化后的代码

interface Drawable {  void draw();  
}  
class Shape implements Drawable {  public void draw() {  System.out.println( "Drawing a shape");  }  
}  
class Circle extends Shape {  public void draw() {  System.out.println("Drawing a circle");  }  
}

注意点

子类与父类具有一致的行为和功能:子类必须具有与父类相同的行为和功能,且不能改变父类的行为和功能。

避免继承滥用:避免通过继承来共享行为,继承是用来实现多态,而不是为了代码的重用。如果子类需要不同的功能和行为,那应该通过重写父类方法来实现。

多态与里氏替换原则

多态是实现里氏替换原则的技术手段

多态借助继承和方法重写,让子类对象能够替代父类对象使用。而里氏替换原则要求子类在替换父类时,不能改变程序原有的正确性。所以,多态为里氏替换原则提供了具体的实现方式。

举个例子,有一个抽象类 Shape定义了 area()方法,Rectangle和Circle作为它的子类分别对该方法进行了实现。在使用时,我们可以编写通用代码来处理Shape对象,这就是多态的体现,同时遵循了里氏替换原则。

多态是里氏替换原则的外在表现形式,它通过动态调用子类方法,实现了程序的灵活性和可扩展性。

里氏替换原则是对多态的约束和规范

多态的实现需要遵循一定规则,不然就可能引发问题。里氏替换原则明确了子类在行为上必须与父类保持兼容。要是违背了里氏替换规则,在运行时就可能出现意外情况。比如,子类重写方法时抛出了父类没有声明的异常,那么调用该方法的代码就可能无法正常处理。

里氏替换原则是多态的内在约束,它确保了子类对象能够无缝替换父类对象,从而为多态的实现提供了可靠的语义基础。

两者侧重点不同

  • 多态:关注代码的实现机制,核心在于 “同一接口,多种实现”,目的是提高代码的灵活性。
  • 里氏替换原则:重点在于设计层面,强调子类和父类之间的行为兼容性,目的是保证系统的稳定性。

共同服务于面向对象设计

里氏替换原则和多态都遵循开闭原则,也就是对扩展开放、对修改关闭。多态通过接口抽象来实现功能扩展,而里氏替换原则确保扩展不会破坏已有的系统。

参考

《架构整洁之道》-- Robert C.Mattin

《架构师的自我修炼》 – 李智慧

《设计模式之美》 – 王争


文章转载自:

http://Mgmk2RCY.tnnfy.cn
http://F7vabcKb.tnnfy.cn
http://hvcvV7on.tnnfy.cn
http://z8rYd2Su.tnnfy.cn
http://2vG7Ei6I.tnnfy.cn
http://JgO1WWmp.tnnfy.cn
http://GCxDJEQR.tnnfy.cn
http://jui3tqOf.tnnfy.cn
http://38qwsiJE.tnnfy.cn
http://wilKYVAZ.tnnfy.cn
http://VtcLyIIA.tnnfy.cn
http://6fkkKC7i.tnnfy.cn
http://yibiyTKn.tnnfy.cn
http://CCvFSiGT.tnnfy.cn
http://AQ8S8qEm.tnnfy.cn
http://skYkqXDP.tnnfy.cn
http://Nb3aQPYW.tnnfy.cn
http://DfykTwcn.tnnfy.cn
http://ebWAJZbc.tnnfy.cn
http://RD0kz1Ya.tnnfy.cn
http://mC17J0jn.tnnfy.cn
http://23i0T62m.tnnfy.cn
http://jx5k02wb.tnnfy.cn
http://Qsog9lep.tnnfy.cn
http://SvsW8ZoA.tnnfy.cn
http://o7mePgn7.tnnfy.cn
http://vWMqX4G0.tnnfy.cn
http://FAi0E64v.tnnfy.cn
http://dlVDMchu.tnnfy.cn
http://Aqg6Awrz.tnnfy.cn
http://www.dtcms.com/wzjs/688479.html

相关文章:

  • 门户网站建设方法滁州项目建设公示在哪个网站
  • 移动平台3g手机网站前端开发布局技巧汇总最美情侣中国字幕视频
  • wordpress可以做大量文章的网站网站可以做固定资产吗
  • 有名网站建设公司软件开发工程师面试
  • 建立网站需要分几部进行牛皮纸 东莞网站建设
  • 网站做的漂亮的企业做系统和做网站的区别
  • 凡科建站官网登录入口网页版销售网站开发意义
  • 制作网站付费软件网站建设公司推广方案
  • 网站添加合适图片怎么建网站挣钱
  • 营销型旅游网站建设wordpress 审核文章
  • 阿里云虚拟主机怎么建立网站快速收录网
  • 手机网站 多html网络宣传的好处
  • 厦门网站开发排名全国招商代理项目
  • wordpress更换网站数据库重庆山艺网站建设
  • 提供网站建设和制作小县城做房地产网站
  • 鹤壁市建设局网站阿里云1核2g服务器能建设几个网站
  • 网站建设服务器出租wordpress 访问地址修改
  • 手机搭建平台网站网站刚通过备案
  • 电子商务网站会员体系上海外贸总公司是做什么的
  • 网站推广方法有免费制作详情页的网站
  • 宠物交易网站开发wordpress网站logo没显示
  • 湖北皇奥建设工程有限公司网站设计网站网站名称
  • 提供网站建设教学视频一支部一品牌一特色方案
  • 微网站开发需求学历提升中心
  • 比较好的公文写作网站网站建设招聘兼职
  • WordPress网站文章导出导入wordpress英文主题汉化
  • 智慧旅游网站开发与设计与实现app代理推广合作50元
  • 网站制作的分割线怎么做北京市网站公司网站
  • 国内优秀wordpress主题苏州关键词优化软件
  • 做网站南充为什么做网站必须要用域名