一、关联关系总结:

1.对象和对象之间的连接。Java中,关联关系的代码表现形式为一个类做为另一个类的属性类型存在。即“有”的关系:”has-a”。

2.关联关系的方向:关联关系分为单向关联和双向关联  

①单向关联: A类关联B类。

②双向关联:A类关联B,B类关联A类。

3.关联关系的多重性:①一对一关联:一个学生,只能在一个班级里学习。

②一对多关联:一个学生,可以参加多个班级学习。

③解决一对多的关联的方案:集合和数组。

集合

例:

    public class Classes{     

     }

    public  class Student{

    private List Classess

}

数组

例:

    public class Classes{      

    }

    public  class Student{

    private Classes[] Classess

}

4.关联关系的特殊情况:如果两个互相关联的类中有整体和部分的关系,关联关系分为: 聚合和组合,主要区别在于生命周期不同。

二、依赖关系总结:

1.依赖关系的定义:依赖关系(use-a),指一个类A使用到了另一个类B

2.依赖关系的特性:这种关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A

3.依赖具体表现:在代码层面,依赖关系表现为类B作为参数被类A在某个method

4.依赖与关联的区别:

关联是HAS”关系,依赖是“USE”关系:

A类关联B类,指的是B类对象作为A类的属性存在,称为“has”关系。

A类依赖B类,指的是B的对象作为A类的方法参数存在,称为“use”关系。

生命周期不同:

①如果A类关联B类,那么创建A类的对象时实例化B类的对象,直到A类对象被销毁,所关联的B类对象也被销毁。即只要A类对象存在,B类对象就存在。

②如果A类依赖B类,那么只有当A类对象调用到相应方法时,B类对象才被临时创建,方法执行结束,B类对象即被回收,A类和B类之间的依赖关系是一种瞬时的关系。