组合,聚合,关联,依赖 的区别
依赖(Dependency)
定义:
是类与类之间的连接,表示一个类依赖于另外一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被使用的关系;
@H_404_10@代码示例:
public class A{ public void mehtod(B b) { b.writer(); } }
A这个类方法method的使用依赖于B,没有B method这个方法无法实现。即A中method这个方法使用到了B。
简而言之:若A的目标要完成某一操作,有必要运用B的目标的某些操作来帮助,才能完成。B是作为A的某个方法的参数存在。
依赖是两个类,使用与被使用的关系
关联(Association)
含义:
类与类之间的连结,关联关系使一个类知道另外一个类的属性和方法;通常含有“知道”,“了解”的含义。关联可以是双向的,也可以是单向的
@H_404_10@代码:
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; } }