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

传媒公司网站建设方案9个成功的市场营销案例

传媒公司网站建设方案,9个成功的市场营销案例,郑州seo网站推广,杭州做网站企业文章目录 什么情况下不推荐使用继承?组合相比继承有哪些优势?使用组合、继承的时机 本文主要想了解: 为什么组合优于继承,多用组合少用继承。如何使用组合来替代继承哪些情况适用继承、组合。有哪些设计模式使用到了继承、组合。 …

文章目录

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

本文主要想了解:

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

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

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

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

 

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

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

如下例子:

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

 

替代复杂的继承关系逻辑

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

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

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


 

使用组合、继承的时机

总体原则

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

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

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

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

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

如下:

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

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


文章转载自:

http://zze1tqEB.wLfxn.cn
http://zGNfqqId.wLfxn.cn
http://L0MhcvXt.wLfxn.cn
http://WWmkbvnI.wLfxn.cn
http://A80oFE0D.wLfxn.cn
http://NltwdBOa.wLfxn.cn
http://tjCrG54S.wLfxn.cn
http://NpsdPGJ8.wLfxn.cn
http://z1V4DGfR.wLfxn.cn
http://ZPNxtKkn.wLfxn.cn
http://8kHNMtiH.wLfxn.cn
http://Eyl8Lwio.wLfxn.cn
http://WI5kKIbq.wLfxn.cn
http://PdlpRG5M.wLfxn.cn
http://n9crUNS6.wLfxn.cn
http://5RupNHfP.wLfxn.cn
http://HTnYTE1C.wLfxn.cn
http://LZi8yTGg.wLfxn.cn
http://fI7zm2M0.wLfxn.cn
http://owgwXaUy.wLfxn.cn
http://520q1OJS.wLfxn.cn
http://wG62D7CF.wLfxn.cn
http://U3n5Rtga.wLfxn.cn
http://ZhUdUfg8.wLfxn.cn
http://bav53wEC.wLfxn.cn
http://J7Fbuwzz.wLfxn.cn
http://5aObcEvn.wLfxn.cn
http://hRioi1Yo.wLfxn.cn
http://rO47HwHE.wLfxn.cn
http://Fl8kOKbD.wLfxn.cn
http://www.dtcms.com/wzjs/672852.html

相关文章:

  • 网上哪里有辅导高考生做难题的网站mysql 学习网站
  • 本地安装网站深圳福田专业网站建设
  • 商城类网站如何做一个网站做两个语言模板可以吗
  • 小程序跳转到网站设计师培训资料
  • 网站空间代理站抖音代运营排名
  • 开发网站所用技术七牛云存储 wordpress连接失败
  • 注册账号自建网站谷歌域名注册
  • 中国建设工程信息网站上海网站备案信息注销
  • 开企网站建设wordpress 根据ua跳转
  • 住房和建设执业资格注册中心网站企业网站建设ppt模板
  • 苏州网站建设推广案例一 网站建设总体目标
  • 做网站需要注册什么公司上海建筑设计公司网站
  • 旺道seo怎么优化网站东莞网站制作
  • nodejs做网站的弊端高端瓶装水品牌
  • 什么网站可以做论坛app企业网站如何做seo
  • 基于.net音乐网站开发设计制作小车
  • 有什么办法做自己的网站室内装修设计师怎么样
  • 做视频的软件模板下载网站有哪些设计网站专题页包括那些项目
  • 微信公众号平台及网站建设计划app软件开发用什么软件
  • 网站开发平台软件网店运营与管理
  • 漂亮的设计类图片网站响应式网站模板免费
  • 网站建设经营服务合同南京市网站建设公司
  • 网站优化需求表网站怎样做seo推广
  • 东莞seoseo优化排名东莞企业seo推广
  • 广告字体效果图在线制作广州网站优化快速提升网站排名
  • 宝山php网站开发培训一个app的开发流程
  • 滁州公司做网站网站建设图片按钮
  • 阜阳市重点工程建设局网站网站维护要学多久
  • dx网站是哪家公司做的网站建设实验报告手写
  • 门户网站维护怎么做农产品网络营销渠道