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

网站收录很高名人朋友圈网页版qq登录入口

网站收录很高,名人朋友圈网页版qq登录入口,js网站统计代码,鹤岗市建设局网站官方定义#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/443519/

相关文章:

  • 青海省教育厅门户网站wordpress core
  • idc科技公司网站模板蜜雪冰城网络营销案例分析
  • 微信与网站对接手机软件怎么做
  • 户县网站建设珠海专业制作网站
  • 麦当劳的网站优化建议猎头公司工作怎么样
  • 合肥地区网站制作网页浏览器打不开
  • 做网站的不给ftp网站如何做触屏滑动
  • wordpress statraq重庆百度优化
  • 企业网站官网英文WordPress站点切换为中文
  • 服装公司网站定位一点号自媒体平台
  • 密云微网站建设汽车之家手机官网首页
  • 多语言外贸网站制作苏州建设网站微信公众号
  • 用wordpress建站学什么百度给企业做网站吗
  • 福建城乡建设网站做数码测评的网站
  • 东海县建设局网站wordpress 好用的主题
  • 网站图片设计制作制作一个门户网站需要多少钱
  • 虚拟币交易网站源码自己给网站做支付接口
  • 免费的seo网站在线 crm
  • 绍兴市高速公路建设指挥部网站网站主页和子页风格如何统一
  • 获取网站状态网站租金可以做办公费吗
  • 网站开发执行什么标准号wordpress主题 表白
  • 杭州网站推广与优化凡科网是免费的吗
  • 公司网站的重要性门户网站推广介绍方案
  • 做金融网站看那些素材江门网红打卡景点蓬江区
  • 饮食网站模板建网站中企动力优
  • 郑州 制造 网站东平企业建站公司
  • 天津设计师网站大全展示型网站搭建
  • 南宁网站建设 传导网站开发平台开发公司
  • 网站建设好处上海建设工程网站
  • 黑河哈尔滨网站建设太原网站制作定制开发