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

高校文明建设网站wordpress 4.7.9

高校文明建设网站,wordpress 4.7.9,临西网站建设公司,公司部门聚餐计入什么科目官方定义#xff1a; 里氏替换原则#xff08;Liskov Substitution Principle#xff0c;LSP#xff09;是由麻省理工学院计算机科学系教授芭芭拉利斯科夫于 1987 年在“面向对象技术的高峰会议”#xff08;OOPSLA#xff09;上发表的一篇论文《数据抽象和层次》#…官方定义 里氏替换原则Liskov Substitution PrincipleLSP是由麻省理工学院计算机科学系教授芭芭拉·利斯科夫于 1987 年在“面向对象技术的高峰会议”OOPSLA上发表的一篇论文《数据抽象和层次》Data Abstractionand Hierarchy里提出的. 她在论文中提到如果S是T的子类型对于S类型的任意对象如果将他们看作是T类型的对象则对象的行为也理应与期望的行为一致。 子类对象能够替换程序中父类对象出现的任何地方并且保证原来程序的逻辑行为不变及正确性不被破坏。 如何理解里氏替换原则 要理解里氏替换原则其实就是要理解两个问题 什么是替换 什么是与期望行为一致的替换Robert Martin所说的“必须能够替换” 1 ) 什么是替换 ? 替换的前提是面向对象语言所支持的多态特性同一个行为具有多个不同表现形式或形态的能力。 2 ) 什么是与期望行为一致的替换 在不了解派生类的情况下仅通过接口或基类的方法即可清楚的知道方法的行为而不管哪种派生类的实现都与接口或基类方法的期望行为一致。 不需要关心是哪个类对接口进行了实现,因为不管底层如何实现,最终的结果都会符合接口中关于方法的描述(也就是与接口中方法的期望行为一致). 或者说接口或基类的方法是一种契约使用方按照这个契约来使用派生类也按照这个契约来实现。这就是与期望行为一致的替换。 场景案例 比如在一个商城项目中,有3种促销活动 1)PromotionalStrategy 满减活动两百以上百八折 2)RebateStrategy打折活动 3)ReduceStrategy返现活动 public interface Istrategy {public double realPrice(double consumePrice); } public class PromotionalStrategy implements Istrategy {public double realPrice(double consumePrice) { if (consumePrice 200) { return 200 (consumePrice - 200) * 0.8; } else { return consumePrice; } } } public class RebateStrategy implements Istrategy { private final double rate; public RebateStrategy() { this.rate 0.8; } public double realPrice(double consumePrice) { return consumePrice * this.rate; } } public class ReduceStrategy implements Istrategy { public double realPrice(double consumePrice) { if (consumePrice 1000) { return consumePrice - 200; } else { return consumePrice; } } }调用方为Context在此类中使用接口定义了一个对象 public class Context { //使用基类定义对象变量 private Istrategy strategy; // 注入当前活动使用的具体对象 public void setStrategy(Istrategy strategy) { this.strategy strategy; } // 计算并返回费用 public double cul(double consumePrice) { // 使用具体商品促销策略获得实际消费金额 double realPrice this.strategy.realPrice(consumePrice); // 格式化保留小数点后1位即精确到角 BigDecimal bd new BigDecimal(realPrice); bd bd.setScale(1, BigDecimal.ROUND_DOWN); return bd.doubleValue(); } }Context 中代码使用接口定义对象变量这个对象变量可以是实现了lStrategy 接口的PromotionalStrategy、RebateStrategy 、 ReduceStrategy任意一个。 里氏代换原则与多态的区别 ? 虽然从定义描述和代码实现上 来看多态和里式替换有点类似但它们关 注的角度是不一样的。多态是面向对象编程的一 大特性也是面向对象编 程语言的一种语法。它是一种代码实现的思路。而里式替换是一种 设计原 则用来指导继承关系中子类该如何设计子类的设计要保证在替换父类 的时候不 改变原有程序的逻辑及不破坏原有程序的正确性。 里氏替换原则和依赖倒置原则构成了面向接口编程的基础正因为里氏替换 原则才使得程序呈现多样性。
http://www.w-s-a.com/news/340443/

相关文章:

  • 佛山免费发布信息的网站oa办公系统排行榜
  • 南湖区建设街道办事处网站汕头建设银行各支行电话
  • 复古风格网站网站套餐方案
  • 界面设计做的好的网站旅游商城网站模板
  • 大型电子商务网站 服务器硬件 cpu 内存 硬盘 2014美食网站开发意义
  • 建立网站的目的和意义网站建设寻求
  • 邢台手机网站建设设计师培训心得
  • 营销网站怎么做丽水微信网站建设哪家好
  • 南昌定制网站开发多少钱东阿县城市建设局网站
  • 浙江网站建设公司南昌seo招聘
  • 工业软件有哪些专业seo站长工具全面查询网站
  • 山东兴华建设集团有限公司网站和京东一样做电子产品的网站
  • 网站建设谢辞关于h5的网站模板
  • 网站改版提交WordPress360收录
  • 省级网站 开发建设 资质在国外怎么做网站
  • 中商华兴建设有限公司网站我的世界查找建筑网站
  • 广东网站设计公司百度推广免费送网站
  • 高密做网站哪家好网站建设预算
  • 免费wordpress网站模板重庆如何做聚政网站
  • 人才网站app建设建议系统开发生命周期法的优点表现
  • 门户网站想要微信登录怎么做湖南网站seo推广
  • 襄阳 网站建设管理系统网站
  • 重庆工程建设招标投标交易信息网广州外贸seo优化
  • 一个一起做网站东莞设计兼职网站建设
  • 杭州网站程序开发公司在哪个公司建设网站好
  • 网店的网站设计方案济南手机建站价格
  • 网站做了301重定向域名会自动跳转吗唐山地方志网站建设
  • 学校网站建设说明书海南省建设执业资格注册管理中心网站
  • 东莞哪家网站建设好网站风格设定
  • 自驾游网站模板搭建wordpress步骤