关联(Association)于依赖(Dependency)的区别
class
A
{
public B b=new B();
A(){
}
public void somefun(){
C c = new C();
}
}
public B b=new B();
A(){
}
public void somefun(){
C c = new C();
}
}
其中:
public B b=new B();为关联
C c = new C();为依赖
依赖一般的表现方法是方法的局部变量,或者是方法内对静态方法的引用!
关联一般的表现方法是对象的全局变量!
依赖:
class A
{
void methodA()
{
B b = new B();
b.methodB();
}
}
关联:
class A
{
B b = new B();
void methodA()
{
b.methodB();
}
}
UML类图元素::::http://uml.chinaitlab.com/UML/17681.html
聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚 合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也 就删除了代表部分事物的对象。
我们用浅显的例子来说明聚合和组合的区别。“国破家亡”,国灭了,家自然也没有了,“国”和“家”显然也是组合关系。而相反的,计算机和它的外设之间就是 聚合关系,因为它们之间的关系相对松散,计算机没了,外设还可以独立存在,还可以接在别的计算机上。在聚合关系中,部分可以独立于聚合而存在,部分的所有 权也可以由几个聚合来共享,比如打印机就可以在办公室内被广大同事共用。