组合,聚合,关联,依赖 的区别
依赖(Dependency)
定义:
是类与类之间的连接,表示一个类依赖于另外一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被使用的关系;
代码示例:
public class A{
public void mehtod(B b)
{
b.writer();
}
}
A这个类方法method的使用依赖于B,没有B method这个方法无法实现。即A中method这个方法使用到了B。
简而言之:若A的目标要完成某一操作,有必要运用B的目标的某些操作来帮助,才能完成。B是作为A的某个方法的参数存在。
依赖是两个类,使用与被使用的关系
关联(Association)
含义:
类与类之间的连结,关联关系使一个类知道另外一个类的属性和方法;通常含有“知道”,“了解”的含义。关联可以是双向的,也可以是单向的
代码:
public class A{
private B b;
public B getB()
{
return b;
}
public void setB(B b)
{
this.b=b;
}
public void mehtod()
{
b.writer();
}
}
有代码可知:
B是作为A的特点,属性存在。
依赖和关联的区别在于依赖是使用,关联是拥有。
- 关联表明has-a联系,如学生有一个课程,往往表明B作为A的特点存在
- 依赖表名要做一件工作,离不开某个目标,往往表明B作为A的方法参数存在
看一下下边的代码可以进一步加深了解。
public class Student{
private String name;
private Course course;//Student关联Course
private Student(String name){
super();
this.name=name;
}
//依赖关系:Student依赖Course
public void chooseCourse(Course course){
this.course=course;
}
}