合成聚合原则

1.合成聚合原则的概念

合成聚合原则经常又叫做合成复用原则(Composite ReusePrinciple或CRP),尽量使用对象组合,而不是继承来达到复用的目的。

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

简而言之,要尽量使用合成/聚合,尽量不要使用继承。

2.合成聚合原则的分析

首先在面向对象设计中,可以通过两种基本方法在不同的环境中复用已有的设计和实现,即通过组合/聚合关系或通过继承。

合成的概念是表示一个整体与部分的关系,指一个依托整体而存在的关系(整体与部分不可以分开),

例如:一个人对他的房子和家具,其中他的房子和家具是不能被共享的,因为那些东西都是他自己的。如果人没有了,他们的关系就没了。

其中如下图:

代码如下:

public class He

{ private Mouth mouth;

public Head() {

mouth = new Mouth();

}

}

public class Mouth {

}

聚合的概念是:聚合是比合成关系更弱的一种拥有关系,也表示整体与部分的关系(整体与部分可以分开),

例如,一个奔驰S360汽车,对奔驰S360引擎,奔驰S360轮胎的关系..这些关系就是带有聚合性质的。

因为奔驰S360引擎和奔驰S360轮胎他们只能被奔驰S360汽车所用,离开了奔驰S360汽车,它们就失去了存在的意义。

在我们的设计中,这样的关系不应该频繁出现.这样会增大设计的耦合度。

如图:

 

 

 代码如下:

public class Car

{

private Engine engine;

public Car(Engine engine) {

this.engine = engine;

}

public void setEngine(Engine engine) {

this.engine = engine;

}

}

public class Engine { }

 

posted @ 2020-03-20 21:46  jyqdaisy  阅读(330)  评论(0编辑  收藏  举报