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

传媒公司网站建设方案国际交流合作网站建设方案

传媒公司网站建设方案,国际交流合作网站建设方案,人工智能培训班收费标准,wordpress自动添加内链文章目录 什么情况下不推荐使用继承?组合相比继承有哪些优势?使用组合、继承的时机 本文主要想了解: 为什么组合优于继承,多用组合少用继承。如何使用组合来替代继承哪些情况适用继承、组合。有哪些设计模式使用到了继承、组合。 …

文章目录

  • 什么情况下不推荐使用继承?
  • 组合相比继承有哪些优势?
  • 使用组合、继承的时机

本文主要想了解:

  • 为什么组合优于继承,多用组合少用继承。
  • 如何使用组合来替代继承
  • 哪些情况适用继承、组合。
  • 有哪些设计模式使用到了继承、组合。

什么情况下不推荐使用继承?

继承是面向对象的四大特性之一,用来表示类之间的 is-a 关系,可以解决代码复用的问题。

但当继承层次过深、过复杂,也会影响到代码的可维护性。在这种情况下,我们应该尽量少用,甚至不用继承。

 

组合相比继承有哪些优势?

可以利用组合(composition)、接口、委托(delegation)三个技术手段,一块儿来解决刚刚继承存在的问题:继承层次过深、继承关系过于复杂会影响到代码的可读性和可维护性。

如下例子:

  1. 接口实现功能的拓展:接口表示具有某种行为特性。接口可以拓展类的行为。
  2. 通过组合和委托技术来消除代码重复。
    在这里插入图片描述

 

替代复杂的继承关系逻辑

我们知道继承主要有三个作用:表示 is-a 关系,支持多态特性,代码复用。而这三个作用都可以通过其他技术手段来达成。

  1. 比如 is-a 关系,我们可以通过组合和接口的 has-a 关系来替代;
  2. 多态特性我们可以利用接口来实现;
  3. 代码复用我们可以通过组合和委托来实现。

所以,从理论上讲,通过组合、接口、委托三个技术手段,我们完全可以替换掉继承,在项目中不用或者少用继承关系,特别是一些复杂的继承关系。


 

使用组合、继承的时机

总体原则

如果类之间的继承结构稳定(不会轻易改变),继承层次比较浅(比如,最多有两层继承关系),继承关系不复杂,我们就可以大胆地使用继承。

反之,系统越不稳定,继承层次很深,继承关系复杂,我们就尽量使用组合来替代继承。

 
相关设计模式
有一些设计模式会固定使用继承或者组合。

在这里插入图片描述
 
我们必须使用继承的场景

如果你不能改变一个函数的入参类型,而入参又非接口,为了支持多态,只能采用继承来实现。

如下:

其中 FeignClient 是一个外部类,我们没有权限去修改这部分代码,但是我们 希望执行encode时按照司内逻辑来进行encode。 这个时候,我们只能采用继承来实现了。
在这里插入图片描述

 
参考:《设计模式之美》王争

http://www.dtcms.com/wzjs/811497.html

相关文章:

  • 如何建设下载网站舟山网站建设优化
  • 兰州网站开发哪里可以做wordpress主题helpdesk
  • 深圳做网站(龙华信科)世界互联网峰会马云
  • 高端大气的科技网站可以加速网页的加速器
  • 个人备案网站可以做电影站吗ps网页设计教程视频
  • 做网站要的带宽是什么移动端显卡
  • 珠海绿网科技有限公司seo实战密码
  • 邯郸卓匠网络科技有限公司网站对图片优化吗
  • 做片头的网站天津市做公司网站的公司
  • h5旅游网站开发网上购物app有哪些
  • 园区门户网站建设方案低价网站建设费用预算
  • 网站建设的技术有哪些内容网站建设单选按钮
  • 郑州建设网站定制惠州人才市场最新招聘信息网
  • 东莞营销型高端网站建设网站如何申请微信支付功能
  • 网站服务器租用一年多少钱啊网络营销工具的作用
  • 网站绩效营销赣榆哪里有做网站的
  • 台州市临海建设局网站怎么把自己的网站推广
  • 电子商务网站规划与建设的论文企业信用
  • 怎样免费做彩票网站网站顶部公告代码
  • 网站域名选择的原则如何充实网站内容
  • 电商网站推广方法网站建设编程时注意事项
  • 数据分析对网站建设的重要性wordpress教程哪本好
  • 成都万商云集做网站怎么样ios应用程序开发
  • php宠物用品公司网站源码广州怎么做网站
  • 楼盘网站建设短视频seo公司
  • 艺术风格网站杭州亚运村建设指挥部网站
  • 淘宝网站做超链接吉林市做网站的公司哪家好
  • 网站设计制作什么时候好万峰科技.jsp网站开发四酷全书[m]
  • 中国响应式网站有哪些最新发布的最新
  • 网站左侧悬浮wordpress 中文网站