UML 基础

(1)依赖(dependency)是使用和被使用的关系:对象的行为使用外部对象作为参数,行为受外部对象影响.如图 AAA类依赖于BBB类.(uses)

 BBB 对象只能存在于AAA对象的方法中或方法的参数中,不能作为属性。

(2)关联(association)是一种结构关系:外部对象作为对象一个属性的方式存在。如图AA类与BB1类.(has-a)

 BB1对象只能作为AA对象的属性存在,由外部提供或在构造函数、方法中创建。

(3)聚集(aggregation)是一种特殊类型的关联,它描述了整体和部分间的结构关系整体和部分可以分离有各自生命周期。如图AA类与BB3类

 BB3对象只能作为AA对象的属性存在,由外部提供,不能在AA对象的构造函数或方法中创建。

(4)组合(composition)是一种特殊类型的关联,它描述了整体和部分间的结构关系整体和部分不可以分离部分生命周期依赖整体。如图AA类与BB2类(通常BB2对象要在构造函数里产生)

  BB2对象只能作为AA对象的属性存在,在AA对象的构造函数或方法中创建,不能由外部提供。

聚合和组合的区别:生命周期。

组合中,随着AA类的生命周期结束,BB2也结束。必须在AA类里面使用。(通过构造函数创建对象方式存在)

聚合中,随着AA类的生命周期结束,BB3不一定结束。(通过外部对象进行属性赋值方式存在)

 

(5)泛化(generalization)是一种特殊/一般关系,特殊元素(子类)的对象可替代一般元素(父类)的对象,用这种方法,子类共享了父类的结构和行为。如图A类与B类,为纵向关系.(is-a)

 

(6)实现(realization)是一个类指定了由另一个类保证执行的契约。如图B类与C类,也为纵向关系.

(has-a关系中的重数:右边的数说明左边的对象可以拥有多少个右边的对象;左边的数说明右边的对象必需或不必需存在于左边对象)

 

视图元素

其中的包含关系和扩展关系的解析:

1. 包含关系:把一个功能分解为多个小功能所建立的关系。(由里向外的动作)

2. 扩展关系:对一个功能的增强,不是本身的分解所建立的关系。(由外向里的动作)

 

FYI: http://kb.cnblogs.com/page/129491/

posted @ 2011-11-19 10:43  Yu  阅读(281)  评论(0编辑  收藏  举报