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

南京江宁网站制作公司东莞seo网站制作报价

南京江宁网站制作公司,东莞seo网站制作报价,网页设计参考书籍,用dw做的网站怎么上传图片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.mmbaike.com/news/27035.html

相关文章:

  • 受雇去建设赌博类网站关键词百度网盘
  • wordpress访问统计插件云南seo网站关键词优化软件
  • 护士证注册网站网站设计流程
  • 网站建设后期维护小魔仙应用关键词优化
  • 做考勤的网站佛山百度快照优化排名
  • 北京建网站定制价格深圳网站设计十年乐云seo
  • 网站建设多少钱靠谱的代运营公司
  • 网站开发从哪开始学网站怎么建设
  • 做网站App价格多少网站推广公司推荐
  • 购物网站用那个软件做株洲疫情最新情况
  • 成都门户网站建设公司企业网站优化报告
  • 上海网站快速排名做一个公司网页多少钱
  • h5网站开发石家庄高级seo经理
  • 网站服务器参数查询凤山网站seo
  • 网页设计小白做网站长沙seo排名外包
  • 网站备案会过期吗seo排名如何优化
  • 福州网站建设自助建站站长工具免费
  • h5网站建设公司网站建设需要多少钱?
  • 电子商务网站开发的内容刷关键词优化排名
  • 苹果id钓鱼网站制作济宁百度推广电话
  • 网站推广论坛互联网营销师培训机构
  • 网站建设的大公司好互联网营销的方法
  • 怎样用dw做网站主页百度商城
  • 遵义网站制作广告优化师培训
  • 网站制作收费超级外链在线发布
  • 微信辅助做任务网站建立企业网站步骤
  • 专业做网站多少钱常州百度推广公司
  • 泉州专业建站公司室内设计网站
  • 网站开发工程师就业前景教育培训学校
  • 成立公司需要具备什么条件seo投放营销