uml类图(Class Diagram)中类与类之间的关系及表示方式

类之间大体分为5种关系:


1,依赖关系(Dependency),单向


public class Fork {
	public void useFork(){
		System.out.println("Use fork to eat!");
	}
}
public class People {
	public void eat(Fork fork){
		fork.useFork();
	}
}

如果A依赖于B,则B表现为A的局部变量,方法参数,静态方法调用等

 

2,关联关系(Association),单向或双向,依赖关系的一种

public class Product {
}
public class Order {
	public void getOrderDes(){		
		Prodeuct p = new Product();
         		...
	}
}

即"has a"关系,如果A单向关联B,则可以说A has a B

 

3,聚合关系(Aggregation),单向关联关系的一种

Goods是Market的组成部分,但是Goods可以不在Market初始化的时候初始化。

public class Goods {
}
public class Market {
	public Goods goods;
	
	public Goods getGoods(){
		goods = new Goods();
		return goods;
	}
}

 通常表现为成员变量

 

4,组合关系(Composition),单向关联关系的一种

public class Head {
}
public class Body {
	public Head head;
	
	public Body(){
		head = new Head();
	}
}

  通常表现为成员变量,并且和所属类具有相同的生命周期


5,继承关系(Inheritance)

类实现接口,类继承抽象类,类继承父类都属于这种关系

可以分得更细:

实现(Realization):类实现接口属于这种关系

泛化(Generalization):即"is a"关系,类继承抽象类,类继承父类都属于这种关系

 

PS:

聚合和组合都属于关联关系,他们之间的区别为:

聚合:聚合关系的2个类生命周期不同

组合:组合关系的2个类生命周期相同


 


posted @ 2013-05-21 22:28  心意合一  阅读(394)  评论(0编辑  收藏  举报