2 u013179958 u013179958 于 2016.03.28 22:45 提问

简答的来说‘合成复用原则’是什么意思?
 7、合成复用原则(Composite Reuse Principle)

合成复用原则就是在一个新的对象里通过关联关系(组合关系、聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用功能的目的。简而言之,尽量使用 组合/聚合 的方式,而不是使用继承。

谁能举个栗子

4个回答

caozhy
caozhy   Ds   Rxr 2016.03.28 23:30
已采纳

设计模式里面到处是这种例子,比如策略模式(Strategy),它在你的主类中聚合了一个策略类,而不同的策咯则是继承策略类。而不是把策略的方法写在主类中,然后直接继承。
再比如Proxy模式,把适配放在Proxy类中,等等。

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.29 06:50
    组合复用本质上是has-a的特征,即有一个什么属性,而继承是is-a是一个什类型。前者更灵活多变,只要有需要可以定义一个其他类型的成员变量,这就是组合的含义。而Java继承只能单继承,还需要写继承体系,而且有些类之间没有表象上的集成关系,就不适合了,例如Person和Address,人拥有一个地址,而人继承地址就牵强了,只能用组合了。
caozhy
caozhy   Ds   Rxr 2016.03.29 06:53

“合成复用原则”的本质还是实现不同关注点的解耦,其实还是“单一职责”的延续。事实上C++是支持“多重继承”的,GoF在编写《设计模式》的时候还没有Java。

CSDNXIAON
CSDNXIAON   2016.03.30 11:29

合成/聚合复用原则
合成/聚合复用原则
合成/聚合复用原则
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
合成聚合复用原则
合成聚合复用原则,也叫合成复用原则。 合成聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新的对象的一部分,新的对象通过向这些对象的委派达到复用已有功能的目的。 更简短的描述就是:要尽量使用合成聚合,尽量不要使用继承。 合成和聚合的关系: 聚合表示拥有关系或者整体和部分的关系。合成表示表示一种更强的拥有关系,合成的对象完全支配其组成部分。 合成聚合复用的优点:
合成复用原则
合成复用原则又称为组合/聚合复用原则(Composition/Aggregate Reuse Principle, CARP),其定义如下: 合成复用原则(Composite Reuse Principle, CRP):尽量使用对象组合,而不是继承来达到复用的目的。 合成复用原则就是在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委
设计模式—合成/聚合复用原则
之前就了解到继承复用有一定的缺点:比如如果基类发生了改变,那么派生类的的实现就不得不发生改变;而且从超类继承而来的实现是静态的,不可能在运行时发生改变,因此它的灵活性差并最终会限制复用性。     现在学习了合成/聚合复用原则就解决了继承复用的缺点。     下面是合成/聚合复用原则的思维导图:       桥接模式的结构图
设计模式之合成复用原则
聚合,表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分; 合成,表示一种强的“拥有”关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。 比如说:大雁有两个翅膀,这就是合成关系。大雁和雁群,是聚合关系。
设计模式六大原则——合成/聚合复用原则(CARP)
1、定义    简而言之,对于合成/聚合复用原则的定义就是:要尽量使用合成和聚合,尽量不要使用继承。           2、释义     为什么“要尽量使用合成和聚合,尽量不要使用继承”呢?      这是因为:      第一,继承复用破坏包装,它把父类的实现细节直接暴露给了子类,这违背了信息隐藏的原则;      第二:如果父类发生了改变,那么子类也要发生相应的改变,这就直
合成、聚合复用原则
定义:合成,聚合复用原则, 也常称为合成复用原则,意思是尽量使用对象组合,而不是通过继承来达到复用的目的。就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新对象通过向这些对象的委派达到复用已有功能的目的。 作用: 1:相对于继承复用,合成复用耦合度更低,选择性的调用成员的对象操作,可以在运行时动态的进行。(黑箱复用,继承是白箱复用) 合成(组合):表示整体和部分的关系
设计模式合成复用原则
合成/聚合复用原则是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。简述为:要尽量使用合成/聚合,尽量不要使用继承。聚合表示弱的拥有关系,比如班级与学生,合成表示强的拥有关系,比如人和四肢合成/聚合和继承都能实现代码复用的目的,那为什么要尽量使用合成/聚合呢?1、合成/聚合的好处:(1)      新对象存取成分对象的唯一方法是通过...
软件设计原则----合成/聚合复用原则(CARP)
“要尽量使用合成/聚合,尽量不要使用继承。” 陈述: 在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新对象通过向这些对象的委派达到复用已有功能的目的。 引入: 如我们所知,在面向对象设计里,不同环境中复用已有设计和实现的基本方法: 继承。合成/聚合。 1、继承复用 继承复用通过扩展一个已有对象的实现来得到新的功能,基类明显地捕获共同的属性和
Java设计模式——合成/聚合复用原则
一、什么是合成/聚合复用原则? 合成/聚合复用原则是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。 简述为:要尽量使用合成/聚合,尽量不要使用继承。 二、合成和聚合的区别;依赖和关联 合成(Composition)和聚合(Aggregation)都是关联(Association)的特殊种类。用C语言来讲,合成是值的聚合(A
合成复用原则(Composite Reuse Principle)
10.3.6  合成复用原则(Composite Reuse Principle) 合成(Composition)和聚合(Aggregation)都是关联(Association)的特殊种类。聚合表示整体和部分的关系,表示"拥有";合成则是一种更强的"拥有",部分和整体的生命周期一样。合成的新的对象完全支配其组成部分,包括它们的创建和销毁等。一个合成关系的成分对象是不能与另一个合成关系共享的