`
hibernater
  • 浏览: 137243 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

合成/聚合复用原则 (CARP)

阅读更多

转自:moon1128

http://blog.csdn.net/moon1128/archive/2005/01/08/245435.aspx

 

合成 / 聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。

简短的表述:要尽量使用合成 / 聚合,尽量不要使用继承。

 

合成和聚合都是关联的特殊种类。聚合用来表示“ has-a ”关系或者整体与部分的关系,而合成则用来表示一种强的多得“ has-a ”关系。在一个合成关系里,部分和整体的生命周期是一样的。一个对象在同一个时间内只能属于一个合成关系,一个合成关系中的成分对象是不能与另一个合成关系共享的。

这种复用是黑盒复用

 

继承复用通过扩展一个已有对象的实现来得到新的功能。

继承复用破坏包装,因为继承将超类的实现细节暴露给子类。

这种复用是白盒复用

如果超类的实现发生改变,那么子类的实现也不得不发生改变的。

 

Is-A ”是严格的分类学意义上的定义,意思是一个类是另一个类的“一种”。

Has-A ”是表示某一个角色具有某一项责任。

继承是“ Is-A ”关系。合成 / 聚合是“ Has-A ”关系。

 

分享到:
评论

相关推荐

    合成聚合复用原则_刘邦VS韩信.pdf

    合成聚合复用原则,简称CARP或CRP,是面向对象设计中的一项重要原则,它强调在构建新对象时应优先考虑使用已有对象的合成和聚合,而不是通过继承来达到复用目的。这一原则旨在降低类之间的耦合度,提高系统的可维护...

    java 设计模式与Jar库

    java 设计模式与Jar库 里氏代换原则LSP 依赖倒转原则DIP 接口隔离原则ISP 合成/聚合复用原则CARP

    SQL语句优化2

    开-闭原则(OCP):一个软件实体应当对扩展开放,对修改关闭。 ...合成/聚合复用原则(CARP):要尽量使用合成/聚合,尽量不要使用继承。 迪米特法则(LoD):一个对象应当对其他对象有尽可能少的了解

    合成聚合复用原则_动力节点Java学院整理

    合成聚合复用原则(Composition/Aggregate Reuse Principle, CARP)是一种面向对象设计原则,旨在指导开发者在设计中如何复用已有的对象。该原则强调在复用时,应该尽量使用组合/聚合关系,而不是继承。 合成复用...

    软件设计的七大原则.doc

    五、 合成/聚合复用原则(CARP) 合成/聚合复用原则是指在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新对象通过向这些对象的委派达到复用已有功能的目的。简而言之,要尽量使用合成/聚合,尽量...

    软件设计的七大原则

    五、 合成/聚合复用原则(CARP) 合成/聚合复用原则是指在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新对象通过向这些对象的委派达到复用已有功能的目的。简而言之,要尽量使用合成/聚合,尽量...

    合成复用原则.doc

    合成复用原则(Composite Reuse Principle,CRP),又称组合/聚合复用原则(Composition/Aggregate Reuse Principle,CARP),是在面向对象设计中的一项重要指导原则。该原则强调:在进行软件复用时,应优先考虑使用...

    设计模式六大原则 .docx

    6、合成/聚合复用原则(CARP) 合成/聚合复用原则主张优先使用对象的组合/聚合,而非继承来实现复用。组合和聚合允许不同对象以松散耦合的方式协作,而继承可能导致紧密耦合和类层次结构的膨胀。例如,桥接模式利用...

    面向对象的设计原则

    5. **合成/聚合复用原则 (CARP)** - **定义**:这一原则提倡使用合成/聚合而非继承来进行代码复用。这意味着,当你需要复用某些功能时,优先考虑通过组合的方式来实现,而不是通过继承。 - **优点**:提高了...

    面向对象六大设计原则

    1、“开-闭”原则(Open-Closed Principle,OCP) 2、里氏替换原则(Liskov Substitution Principle,LSP...5、合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP) 6、迪米特法则(Law of Demeter,LoD)

    java面向对象设计的六大原则

    DIP)、接口隔离原则(Interface Segregation Principle, ISP)以及合成/聚合复用原则(Composite/Aggregate Reuse Principle, CARP)。 #### 1. 单一职责原则(Single Responsibility Principle, SRP) - **定义...

    韩顺平-设计模式1

    合成/聚合复用原则(CARP)推荐优先使用对象的组合/聚合,而不是继承,因为组合/聚合具有更高的灵活性和更低的耦合度。 通过深入学习和实践这些设计模式和原则,开发者可以提升自己的编程技能,编写出更高质量、更...

    2023年最新java面试题及答案

    6、合成/聚合复用原则(Composition/Aggregation Reuse Principle,CARP)优先使用对象的组合/聚合,而不是继承来达到复用的目的。组合/聚合允许在运行时动态地改变对象结构,而继承则在编译时就固定了类的结构。...

    面向对象设计原则与设计说明

    合成/聚合复用原则(CARP) 合成/聚合复用原则建议通过组合或聚合现有对象的方式来构建新的对象,而不是通过继承。这是因为合成/聚合提供了更高的灵活性和更低的耦合度,同时避免了继承的一些潜在问题,如层次结构...

    面向对象开发设计原则ppt

    ### 合成/聚合复用原则 (CARP) #### 定义 合成/聚合复用原则提倡使用对象组合或聚合的方式而不是继承来达到复用的目的。 #### 分析 - **原因**:与继承相比,使用对象组合或聚合的方式可以更好地控制耦合度,并且...

    面向对象设计原则

    ### 合成/聚合复用原则(CARP) 合成/聚合复用原则主张通过组合对象来实现复用,而不是通过继承。这是因为继承带来的紧密耦合往往会导致“脆弱的基类”问题,即基类的小改动可能会影响到所有继承它的子类。相比之下...

    面向对象设计原则:突破软件工程学习的质的飞跃

    5. **合成/聚合复用原则(Composite/Aggregate Reuse Principle, CARP)**:推荐通过组合或聚合的方式复用代码,而不是使用继承。这种方法可以避免继承带来的复杂性和不稳定性,提高代码的复用性和可维护性。 6. **...

    面向对象设计原则和设计模式的概念

    #### 合成/聚合复用原则 (CARP) 合成/聚合复用原则提倡使用对象的组合或聚合而非继承来达到复用的目的。这种方法可以避免继承带来的问题,如紧耦合和多继承的复杂性。例如,如果需要设计一个“汽车”类,可以通过...

    面向对象设计原则解析

    6. **合成/聚合复用原则(Composition/Aggregation Reuse Principle, CARP)** 宁愿使用对象的组合或聚合,而非继承来实现代码的复用。组合与聚合允许动态地改变对象结构,相比继承更加灵活,且不会破坏封装性。 ...

Global site tag (gtag.js) - Google Analytics