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

打电话说帮忙做网站深圳东门步行街地铁站

打电话说帮忙做网站,深圳东门步行街地铁站,开源网站系统安全性,淘宝优化标题都是用什么软件官方定义#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.hkea.cn/news/14583857/

相关文章:

  • 网站怎么建设可以发图评论html网站开发相关书籍
  • 北京市住房与城乡建设部网站服务器创建wordpress
  • 房地产建设网站的意义深圳企业网络推广运营技巧
  • 热转印 东莞网站建设设计最简单的企业网站
  • 网站里弹窗怎么做开发h5网站开发
  • 设计网站首页多少钱怎么做自己的网站平台
  • 成都市住房与城乡建设厅网站外包公司 网站建设 深圳
  • 类似视频教程网站的wordpress主题wordpress的网站后台
  • 建设网站公司名称大全大美工设计网站官网
  • 自己做网站很难装修网站排名前十
  • 简单又快的科学小制作广州优化网站排名
  • 180天做180个网站网站的mysql数据库放到服务器上服务器需要安装mysql吗?
  • 网站建站开发今天的新闻联播内容
  • 建设企业网站个人网银wordpress有多大的数据量
  • 庆阳工程建设网站湖南做网站的公司
  • 吧网站做软件的软件下载医疗设计网站建设
  • 从百万到千万 网站怎么优化wordpress调用ja
  • 网站设计要求有哪些电子商务网站建设技巧
  • 网站开发后乙方把源代码交给甲方手机免费网址
  • dz网站制作优化网站公司外包
  • 通信建设资质管理信息系统网站优化关键词的正确方法
  • 网站专题欣赏专业网站建设组织
  • 手机模板网站下载电子商务seo是什么
  • 长沙本土网站制作公司织梦dedecms蓝色培训机构模板教育学校学院整站php网站源码
  • 做网站怎么别人搜不出来淄博企业网站
  • 外贸网站怎么换域名深圳新生代网络推广
  • html5网站模板免费下载热血传奇网页游戏
  • 优化网站排名怎么制作如何在网上宣传
  • 怎样制作网站电话宜昌企业网站建设
  • 做动态图片的网站吗昆明公司网站开发