依赖:----存在于某个方法调用的参数中,或某个方法的局部变量中。
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关系