【依赖】【关联】【聚合】【组合】

依赖:----存在于某个方法调用的参数中,或某个方法的局部变量中。

Person类与Ball 类的依赖关系

[代码表现]

public class Person{
public void throwBall(Ball ball){
ball.throw();
}
}


关联(association):---存在一个属性

车(Car)和轮子(Circle )的关联关系 作为属性 是该类必不可少的一部分 没有了车

也就不存在轮子,轮子坏了 车也跑不动了

[代码表现]
public class Car{
private Circle circle;

}

聚合(aggregation) 存在一个属性

聚合这种关系是被包含的对象的个数是 0..* 而组合是 1..*
聚合中的被包含对象可以没有。 而组合至少有一个。聚合是一种拥有的关系,而组合是整体与部分的关系

同构性,主体(Company)和部分(Book )不具有生命期的一致性

也就是 自己干自己的活 让别人说去吧

书作为公司的属性 却与公司不存在任何关系

没有了公司 书照样存在

public class Company{
private Book book;

}

组合(composition)

他们的关系按强弱分有

关联<聚合<组合

聚合这种关系是被包含的对象的个数是 0..* 而组合是 1..*
聚合中的被包含对象可以没有。 而组合至少有一个。聚合是一种拥有的关系,而组合是整体与部分的关系

异构性,部分(Circle)和主体(Car)具有生命期上的一致性

你和你的心脏之间是composition关系你和你买的书之间是aggregation关系你和你的朋友之间是association关系

相关文章

什么是设计模式一套被反复使用、多数人知晓的、经过分类编目...
单一职责原则定义(Single Responsibility Principle,SRP)...
动态代理和CGLib代理分不清吗,看看这篇文章,写的非常好,强...
适配器模式将一个类的接口转换成客户期望的另一个接口,使得...
策略模式定义了一系列算法族,并封装在类中,它们之间可以互...
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,...