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

建设视频网站链接百度云盘国外互联网科技网站

建设视频网站链接百度云盘,国外互联网科技网站,小学校园网站建设要求,网站备案照片要求tip: 作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。 相关规则: 推荐:体系化学习Java(Java面试专题) 1.6大设…

tip: 作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。

相关规则:

推荐:体系化学习Java(Java面试专题)

1.6大设计规则-迪米特法则
2.6大设计原则-接口隔离原则
3.6大设计规则-开闭原则
4.6大设计规则-单一职责原则
5.6大设计规则-依赖倒置原则

文章目录

  • 里氏替换原则

里氏替换原则

里氏替换原则 Liskov Substiution Principle ,简称 LSP。怎么理解这个原则呢,《设计模式之禅》第二章介绍它有两种定义:

1、If for each object ol of type S there is an object o2 oftype T such that for all programs P defined in terms of T, the behavior of P is unchangedwhen o1 is substituted for o2 then S is a subtype of T.
如果对每一个类型为S的对象ol,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。

这句话有点晦涩,简单来说就是 T 是父类,S 是子类,在一段代码中,将 T 替换成 S ,代码的逻辑并没发生任何变化。

2、Functions that use pointers or references to base classes must be able to useobjects of derived classes without knowing it. 所有引用基类的地方必须透明的使用其子类的对象。
这句话的意思呢,跟上面的差不多,就父类出现的地方,换成子类,代码不会异常,但是如果反过来,子类出现的地方,要是换成父类,那么就有可能出错了。

参考下面的例子:
我们可以将保时捷换成法拉利,并没有改变 User 类的代码逻辑,依然是先 先点火,在驾驶,这就是里氏替换原则的第一个定义。

package com.pany.camp.design.principle.lsp;/**** @description:  车子的抽象类* @copyright: @Copyright (c) 2022 * @company: Aiocloud* @author: panyong * @version: 1.0.0 * @createTime: 2023-05-31 13:26*/
public abstract class Car {/*** 启动** @since 1.0.0* @param* @return: void* @author: panyong* @version: 1.0.0* @createTime: 2023-05-31 13:28*/abstract void firing();/*** 车子的牌子** @since 1.0.0* @param* @return: String* @author: pany* @version: 1.0.0* @createTime: 2023-05-31 13:36*/abstract String getName();
}
package com.pany.camp.design.principle.lsp;
/**** @description:  保时捷* @copyright: @Copyright (c) 2022* @company: Aiocloud* @author: pany* @version: 1.0.0* @createTime: 2023-05-31 13:30*/
public class Porsche extends Car {@Overridevoid firing() {System.out.println("drive porsche");}@OverrideString getName() {return "porsche";}
}
package com.pany.camp.design.principle.lsp;/**** @description: 法拉利* @copyright: @Copyright (c) 2022* @company: Aiocloud* @author: pany* @version: 1.0.0* @createTime: 2023-05-31 13:40*/
public class Ferrari extends Car {@Overridevoid firing() {System.out.println("drive ferrari");}@OverrideString getName() {return "ferrari";}
}
package com.pany.camp.design.principle.lsp;public class User {public void drive(Car car) {car.firing();System.out.println("drive " + car.getName());}public static void main(String[] args) {User user = new User();// 我可以换成其他的方式,并没有改变代码的逻辑user.drive(new Porsche());user.drive(new Ferrari());}
}
http://www.yayakq.cn/news/479733/

相关文章:

  • qq免费注册网站谷歌关键词搜索排名
  • 做关于水果的网站公司做网站有用吗
  • 深圳网站设计技术微信小程序线上商城怎么做
  • 深圳市住房和建设局网站和市住宅租赁管理服务中心做外国网站买域名
  • 温州网站建设开发运营公众号需要多少钱
  • 电商网站开发哪家好搜狗收录网站
  • 华艺网站建设企业163邮箱登录
  • pc网站做app用divid做网站代码
  • 建立网站接受投注是什么意思建网站广州
  • 现在建网站可以赚钱吗网站开发一般包括
  • 源码快速建站wordpress 内置 函数
  • 新闻门户网站源码wordpress怎么转换为静态链接
  • 12建网站如何建设cf提卡网站
  • 网站更换空间改版收录报送举报网站建设情况
  • 鞍山新款网站制作哪家好上海市建设工程安全协会网站
  • 怎么查看网站收录中国纪检监察报单国平
  • 网站建设负责传资料不外贸网站建设公司如何
  • 网站排名优化软件电话南京网站模板
  • 福田做网站福田网站建设福田建网站500成都网站制作方案
  • 之江汇学校网站建设清溪镇做网站
  • 安防网站建设优点全网覆盖推广
  • 怎么用别人网站做模板网页设计教程案例 杨松
  • 购物网站优惠券怎么做昆明官网seo技术
  • 昆山玉山网站建设如何修改asp网站
  • 家居企业网站建设案例重庆网站建设重庆最加科技
  • 网站查询器荆州网站建设公司
  • 基层单位不能建设网站招标网站免费
  • 怎么棋牌网站建设详细网站设计需求表
  • 盐城网站开发渠道合作烟台网站建设网站
  • 红河网站制作四川自助网站