美文网首页
10.组合vs继承

10.组合vs继承

作者: 转岗做JAVA | 来源:发表于2020-10-26 15:03 被阅读0次
1. 为什么不推荐使用继承?

虽然继承可以解决代码复用等的问题,但如果继承层次过深、过复杂,也会影响到代码的可维护性,而且实际场景下往往对象都会有某些特性,而导致基类分的越来越细,继承层次越来越深。

2. 为什么推荐使用组合?

上面的问题可以通过组合、接口和委托解决。利用接口抽象出行为定义,通过组合不同的行为来定义具体对象的所有行为,对于通用的行为,可以定义具体实现类实现,并将具体对象的通用行为委托给具体的实现类,以提高代码的复用性。

接口+组合+委托符合矢量化思想,即将物体的特征划分为多个独立变化的维度,互不影响。

3. 如何判断该用组合还是继承?
  • 如果类之间的继承结构稳定,层次较浅,继承关系简单,那就可以大胆使用继承,反之,就尽量使用组合来代替继承。
  • 某些设计模式会固定搭配继承或组合,比如:装饰者模式、策略模式、组合模式使用了组合,而模版模式使用了继承。
  • 某些特殊场景限制必须使用继承。比如入参类型不是接口,为了支持多态,只能采用继承实现。

相关文章

  • 10.组合vs继承

    1. 为什么不推荐使用继承? 虽然继承可以解决代码复用等的问题,但如果继承层次过深、过复杂,也会影响到代码的可维护...

  • 组合VS继承

    在Effective Java中明确有提到一种思想就是组合优先于继承。实际中我们可以这样理解,组合是把代码摊开,而...

  • 组合VS继承

    React有很强大的组合机制,我们也建议你用组合的方式书写代码而不是和java等等思想一样用继承的方式写代码,这样...

  • react 组合vs继承

    react 提倡使用组合而不是继承来复用代码,具体原因呢,我现在还不知道-_-!好,先看看什么情况下我们会用到组合...

  • java 组合VS继承

      在阅读Effective Java中的第16条时发现了一个有趣的机制或者说是模式,那就是组合(文中翻译为复用,...

  • React组合 vs 继承

    组合 React 有十分强大的组合模式。我们推荐使用组合而非继承来实现组件间的代码重用。有些组件无法提前知晓它们子...

  • (四)react组合 vs 继承

    React 有十分强大的组合模式。我们推荐使用组合而非继承来实现组件间的代码重用1、组件使用一个特殊的 child...

  • React笔记11(组合 vs 继承)

    React具有强大的组合模型,我们建议使用组合而不是继承来复用组件之间的代码。 本章节中,将围绕几个React新手...

  • 九. React的组合 VS 继承(Composition vs

    React 拥有一个强大的组合模型,官网建议使用组合而不是继承以实现代码的重用。 一. 包含 一些组件在设计前无法...

  • react 文档学习

    1,组合 vs 继承JSX 标签中的所有内容都会作为一个 children prop 传递给 子 组件 少数情况下...

网友评论

      本文标题:10.组合vs继承

      本文链接:https://www.haomeiwen.com/subject/jnpcmktx.html