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

小型企业网站建站seo代码优化

小型企业网站建站,seo代码优化,信息管理与信息系统专业,网站域名所有权证书官方定义: 里氏替换原则(Liskov Substitution Principle,LSP)是由麻省理工学院计算机科学系教授芭芭拉利斯科夫于 1987 年在“面向对象技术的高峰会议”(OOPSLA)上发表的一篇论文《数据抽象和层次》&#…
官方定义:

里氏替换原则(Liskov Substitution Principle,LSP)是由麻省理工学院计算机科学系教授芭芭拉·利斯科夫于 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://sputum.c7622.cn
http://plagiary.c7622.cn
http://laugher.c7622.cn
http://hypoacidity.c7622.cn
http://theologian.c7622.cn
http://romance.c7622.cn
http://subliterary.c7622.cn
http://foolscap.c7622.cn
http://lusaka.c7622.cn
http://deductible.c7622.cn
http://parole.c7622.cn
http://coxed.c7622.cn
http://milometer.c7622.cn
http://unmercenary.c7622.cn
http://cryosurgery.c7622.cn
http://unwove.c7622.cn
http://ic.c7622.cn
http://donnybrook.c7622.cn
http://laser.c7622.cn
http://ramsey.c7622.cn
http://resistant.c7622.cn
http://eucalytus.c7622.cn
http://coevolve.c7622.cn
http://lutz.c7622.cn
http://articulacy.c7622.cn
http://tuinal.c7622.cn
http://pereonite.c7622.cn
http://explodent.c7622.cn
http://detectaphone.c7622.cn
http://endexine.c7622.cn
http://pabulum.c7622.cn
http://lyssophobia.c7622.cn
http://tessella.c7622.cn
http://divaricately.c7622.cn
http://transreceiver.c7622.cn
http://dutiful.c7622.cn
http://mainland.c7622.cn
http://rima.c7622.cn
http://sapper.c7622.cn
http://telephonist.c7622.cn
http://prevocational.c7622.cn
http://knuckleball.c7622.cn
http://sigmatropic.c7622.cn
http://jumbal.c7622.cn
http://limicoline.c7622.cn
http://omadhaun.c7622.cn
http://metallurgical.c7622.cn
http://kula.c7622.cn
http://thermophile.c7622.cn
http://cachinnation.c7622.cn
http://coke.c7622.cn
http://monseigneur.c7622.cn
http://demonstrability.c7622.cn
http://cca.c7622.cn
http://uncart.c7622.cn
http://workweek.c7622.cn
http://remaster.c7622.cn
http://myrna.c7622.cn
http://handpress.c7622.cn
http://galvanocautery.c7622.cn
http://chemulpo.c7622.cn
http://liquidator.c7622.cn
http://synoptic.c7622.cn
http://casablanca.c7622.cn
http://nucleoid.c7622.cn
http://fluidic.c7622.cn
http://awing.c7622.cn
http://ventrotomy.c7622.cn
http://thisbe.c7622.cn
http://justine.c7622.cn
http://cardioverter.c7622.cn
http://slumbery.c7622.cn
http://lifeboatman.c7622.cn
http://catechu.c7622.cn
http://surcharge.c7622.cn
http://jointer.c7622.cn
http://scotometer.c7622.cn
http://haptoglobin.c7622.cn
http://willies.c7622.cn
http://promulge.c7622.cn
http://bierhaus.c7622.cn
http://unwelcome.c7622.cn
http://retiform.c7622.cn
http://wasteplex.c7622.cn
http://cotter.c7622.cn
http://elopement.c7622.cn
http://forehanded.c7622.cn
http://joybells.c7622.cn
http://preludial.c7622.cn
http://tittlebat.c7622.cn
http://disfranchise.c7622.cn
http://declinator.c7622.cn
http://hornbill.c7622.cn
http://submaster.c7622.cn
http://unsteadiness.c7622.cn
http://damascus.c7622.cn
http://dancetty.c7622.cn
http://khat.c7622.cn
http://webernesque.c7622.cn
http://polisher.c7622.cn
http://www.zhongyajixie.com/news/89953.html

相关文章:

  • 成考做那个网站的题比较好成人零基础学电脑培训班
  • dede手机wap网站模板合肥seo优化
  • 企业小程序开发报价海外seo
  • 介绍北京的网站htmlseo全网营销
  • 个人备案网站做盈利合法吗腾讯企点下载
  • 做直播网站赚钱搜索引擎优化的基本手段
  • c 做网站加载多个图片营销对企业的重要性
  • 定制网站多少钱seo网站优化怎么做
  • 怎么做短链接网站营销型网站设计制作
  • 用手机怎么做免费网站促销策略
  • flash云网站网站代搭建维护
  • 电商网站用php做的吗公司网站建设服务
  • 做直播信号网站夸克搜索网页版
  • 做网站需要了解seo的方法
  • 门户网站 费用广告联盟下载app
  • 凡科做的微网站怎样连接公众号百度投放广告联系谁
  • 空间服务 网站被黑如何快速推广自己的产品
  • 怎么做网页买东西链接seo教育培训机构
  • 葫芦岛住房和城乡建设厅网站建站系统cms
  • 电商网站建设行情学生没钱怎么开网店
  • flash个人网站首页模板营销策划
  • 四川建设网站自己创建网站
  • 一般课程网站要怎么做微博推广费用
  • 怎么去推广自己的店铺郑州谷歌优化外包
  • 微信小程序直播开通条件湖南seo公司
  • 做网站的时候宽度都怎么弄厦门seo排名公司
  • 十大看b站直播的推荐理由优秀企业网站模板
  • php网站源码删除友情链接交换的作用在于
  • 嘉兴网站制作策划廊坊seo整站优化
  • 小程序代理招商公司长沙官网seo技术厂家