代码重用(继承和组合)

原创 2012年03月29日 10:44:16
我们知道除copy/paste外, 正规军里的做法有继承和组合, 也就是"isA"和"hasA". 不过在设计实践中, 有这样的说法, 若只是为了代码重用的话, 尽量地用hasA的组合的方式. 一般而言, 在选择isA还是hasA时, 有如下参考:
        1, 不要仅仅为了代码重用而用isA的继承, 而用hasA的组合方式重用代码. 若用isA的继承, 当父类有什么改变时,子类就受到很大的牵连.
        2, 不要仅仅为了多态而用isA的继承,而用接口加组合方式.

设计模式原则—组合重用原则

就是说要尽量的使用合成和聚合,而不是继承关系达到复用的目的,组合能更好的实现封装,比继承具有更大的灵活性和更稳定的结构。 该原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对...
  • wdeng2011
  • wdeng2011
  • 2017年05月08日 10:08
  • 201

两种代码重用机制——组合与继承

java两种代码重用机制——组合与继承
  • Syes_lei
  • Syes_lei
  • 2016年08月10日 10:27
  • 641

C++浅谈组合和继承

C++有三大特性:封装、继承和多态。 之前提到过继承是为了实现代码的复用,如果子类继承了父类那么就会继承父类所有的数据成员及成员函数,在公有继承的时候保持is-a原则,即每个子类的对象也是父类对象。 ...
  • persistence_s
  • persistence_s
  • 2017年03月08日 22:44
  • 438

继承与组合有什么区别

组合和继承是面向对象中两种代码复用的方式。组合是指在新类里面创建原有类的对象,重复利用已有类的功能。继承是面向对象的主要特性之一,它允许设计人员根据其它类的实现来定义一个类的实现。 组合和继承都...
  • Harrytsz
  • Harrytsz
  • 2017年03月13日 20:03
  • 676

c++继承和组合的区别

类的组合和继承一样,是软件重用的重要方式。组合和继承都是有效地利用已有类的资源。但二者的概念和用法不同。通过继承建立了派生类与基类的关系,它是一种 “是(is a)”的关系,如“白猫是猫”,“黑人是人...
  • caoyan_12727
  • caoyan_12727
  • 2016年08月27日 21:59
  • 1038

初识继承、 组合、动态代理

假如我们有一段代码,要在这段代码前加权限,日志,过滤等操作我们该怎么办?我的第一想法就是直接在代码前写代码就好了,可是这样会使代码量增大,不能使我们专注于代码的业务逻辑,并且如果我们看不到原来的代码就...
  • zhinengshiyanshi
  • zhinengshiyanshi
  • 2016年03月15日 17:45
  • 864

继承、组合、委托

软件设计模式中,有很多经典模式,今天从最基本的继承、组合、委托开始研究(Inheritance、Composition、Delegation)。 一、继承(Inheritance) 简单来说,继承就...
  • fengzhongzhishenfu
  • fengzhongzhishenfu
  • 2014年04月13日 12:26
  • 1859

“组合”优于“继承” 例子

转自:http://www.javaeye.com/topic/328262 当我们掌握了Java的语法,当我们了解了面向对象的封装、继承、多态等特性,当我们可以用Swing、Servlet、J...
  • taoshengyang
  • taoshengyang
  • 2012年03月01日 22:31
  • 5059

[Java] 组合与继承的区别

组合和继承都允许在新的类中放置子对象,组合是显式地这样做,而继承是隐式地做。 那两者之间的区别是怎样的呢?又该如何选择呢? 很多人对组合理解地还不是很好,所以我们先来理解一下组合: 组合技术通常用...
  • h_meichuan
  • h_meichuan
  • 2016年04月06日 21:46
  • 1213

java继承和组合的区别,看两个例子,你就明白了

要实现的目标:鸟(Bird)和狼(Wolf)都是动物(Animal),动物都有心跳(beat()),会呼吸(beat()),但是鸟会fly(fly()),狼会奔跑(run()),用java程序实现以上...
  • ycjnx
  • ycjnx
  • 2014年11月09日 20:05
  • 18223
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:代码重用(继承和组合)
举报原因:
原因补充:

(最多只允许输入30个字)