UML简介


  在学习设计模式的时候UML图是必须要了解的。

  UML:统一建模语言(Unified Modeling Language)

UML主要包括如下图:

  其中,案例图、类图和序列图是最有用的。

 

如下面的解释可以深入理解类图的关系:

 

 (1)类class的解释:

  如图的"动物"框,它就代表一个类。类图分为三层,第一层显示类的名称,如果是抽象类,则用斜体表示。第二层是类的特性,通常就是字段和属性。第三层就是类的操作,通常是行为和方法。注意前面的符号,"+" 表示public ,"-" 表示private,"#"表示friendly (默认值,本包可见)。,

  

(2)接口

  如图左下角的"飞翔"就是一个接口。接口与类的区别是顶端有<<interface>>。第一层是接口名称,第二层是接口方法(这种是不赞成在接口中定义属性)

 

补充:接口还有另外一种表示方法,在PowerDesigner中的接口是在名称区加一个带横杠的三角,如下:

 

(3)继承关系:空心三角形+实线表示

 

(4)实现关系:空心三角形+虚线表示

 

(5)关联关系:当一个类知道另一个类时就需要用关联(association),关联用实线箭头表示。

  企鹅需要知道天气的变化。

 

在代码中表现为:关系对象出现在实例变量中。

 

(6)聚合关系:用空心的棱形+实心箭头表示

  看大雁与雁群的关系。大雁是群居动物,每个大雁都属于一个雁群,一个雁群可以有多个大雁。所以说他们满足聚合关系(Aggretation)。聚合是一种弱的"拥有关系",体现的是A可以包含B,但B不是A对象的一部分。

在代码中表现为:关系对象出现在实例变量中。

 

(7)组合(合成)关系:用实心的棱形+实心箭头表示

   组合关系是一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。比如鸟和鸡翅的关系,其生命周期是一样的。连线两端有基数,如下表示一个鸟有2个翅膀。关联关系、聚合关系也可以有基数。

 

 在代码中表现为:关系对象出现在实例变量中。

 

 (8)依赖关系:虚线+箭头表示

  动物依赖于洋气和水,因此形成依赖关系。

  

在代码中表现为:关系对象出现在局域变量或者方法的参量里;或者关系类的静态方法被调用等。

 

注意:(1)关联关系、聚合关系和合成关系不能从java语法上表现出来。(2)关联关系常常可以进一步说明为聚合关系或者合成关系,因此上面关联关系和合成关系的实现是一样的。

 

   编程是一门技术,更是一门艺术。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM