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

西部数据网站建设wordpress 主题更换

西部数据网站建设,wordpress 主题更换,设计感网站,大气金融投资企业网站模板文章目录 什么情况下不推荐使用继承?组合相比继承有哪些优势?使用组合、继承的时机 本文主要想了解: 为什么组合优于继承,多用组合少用继承。如何使用组合来替代继承哪些情况适用继承、组合。有哪些设计模式使用到了继承、组合。 …

文章目录

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

本文主要想了解:

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

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

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

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

 

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

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

如下例子:

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

 

替代复杂的继承关系逻辑

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

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

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


 

使用组合、继承的时机

总体原则

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

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

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

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

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

如下:

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

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


文章转载自:

http://n9vm11HP.schwr.cn
http://nV4EhBnt.schwr.cn
http://GojdSjwO.schwr.cn
http://oHcCQZol.schwr.cn
http://HqPRT0XE.schwr.cn
http://M6T6k4Mq.schwr.cn
http://KAEZgVxy.schwr.cn
http://Yvz2zOKM.schwr.cn
http://PtBQWOg0.schwr.cn
http://nN194iQ6.schwr.cn
http://FoU0bEiK.schwr.cn
http://cuseOS3q.schwr.cn
http://ZiGwRQFj.schwr.cn
http://GEeStlYx.schwr.cn
http://LC5c19jM.schwr.cn
http://KiYOEe7x.schwr.cn
http://zDuxAb9G.schwr.cn
http://wyLEonmq.schwr.cn
http://NOseNEhs.schwr.cn
http://EP1Fi16L.schwr.cn
http://9sXhItjr.schwr.cn
http://F9esDMWW.schwr.cn
http://HJwI8eKU.schwr.cn
http://O8xJ6bgw.schwr.cn
http://3XPuErul.schwr.cn
http://Pd4Y0aLq.schwr.cn
http://yLM7Uggh.schwr.cn
http://BiVMf7vc.schwr.cn
http://gyEMDCXs.schwr.cn
http://lr5pNbs1.schwr.cn
http://www.dtcms.com/wzjs/699017.html

相关文章:

  • 房地产网站建设流程买了域名之后怎么用
  • 企业型网站建设哪家比较好西宁网站建设公司排行
  • 湖南做网站 就问磐石网络专业手机网站是怎么做的
  • 网站建设确认单江苏通力建设官方网站
  • 用asp做网站需要安装什么软件温州网站制作建设
  • 有那个网站可以做免费的投票软件网站怎么做
  • 天津河北做网站的公司免费做网站空间
  • 织梦做分类信息网站做网站 不做源码
  • 新媒体 网站建设 管理规范哪里有做商城的网站
  • 购物商城网站功能设计备案信息在哪里查
  • 制作网站可用性监控食品检测公司
  • 个人类网站类网站电子政务网站建设公司排行榜
  • 东莞公司建网站模板可以做多边形背景的网站
  • 给金融公司群做网站合法吗wordpress中文团队
  • asp网站配色南京制作网站多少钱
  • 重庆做网站推广公司十大SEO网站外链建设误区
  • 学校网站怎么下载不了网页设计和网站设计
  • 四川建设网站首页网站设计相似侵权吗
  • 北白象镇做公司网站哪里有国内建网站知名企业
  • 哈尔滨口碑好的网站建设成都农业网站建设
  • 站长工具官方网做信贷抢客户网站
  • 网站如何添加百度地图免费创建网站平台有哪些
  • 商城网站的基本功能做网站一个月能挣多少钱
  • 建设企业网站的意义网页游戏平台返利
  • html 动漫网站烟台优化网站排名
  • html5 网站logo地方门户网站的推广
  • 网站改备案信息吗威海seo公司
  • 企业网站推广哪个公司好佛山伦教网站设计
  • 网站这么做404页面网站模版源码
  • 做网站编辑有什么发展wordpress编辑器增加按钮