对象关系【继承】【依赖】【关联】【聚合】【组合】

依赖:继承某个对象后 拥有该对象的成员和动作后 同时可以在实现自有特色的动作以及成员

public class Person{    
    public void eat(){    
    }    
}   

public class Ameria extends {    
    public void walk(){    
    }    
}   

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

Person类与Ball 类的依赖关系 依赖关系是单向的 也就是person使用了ball

[代码表现]

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

依赖存在以下几种情况

a、ClassA中某个方法的参数类型是ClassB;这种情况成为耦合;b、ClassA中某个方法的参数类型是ClassB的一个属性;这种情况成为紧耦合;c、ClassA中某个方法的实现实例化ClassB;d、ClassA中某个方法的返回值的类型是ClassB;如果出现了上述四种情况之一,两个类很有可能就是“依赖”关系


  关联(association):

  车(Car)和轮子(Circle )的关联关系 作为属性 是该类必不可少的一部分 关联关系可以是双向的 只要作为属性在另一个类中就可以是关联关系

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

}

 关联关系分为两种:聚合和组合

聚合(aggregation) 是关联关系的一种,是强的关联关系。聚合是整体与个体之间的关系 存在一个属性

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

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

比如汽车的生命周期中 比如行车记录仪 是属于汽车整体的一部分 但是汽车的生命周期中 可以没有行车记录仪 没有了对汽车也没有影响

 

组合(composition)是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表的对象负责代表部分的对象的生命周期,组合关系是不能共享的。

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

比如 人和心脏的关系 就是组合关系 是整体和部分的关系 同时 人不能没有心脏

 从关系的强弱上 关联<聚合<组合

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

原文地址:https://www.cnblogs.com/liaomin416100569/p/9332129.html