注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

obsolete

wanna go

 
 
 

日志

 
 

UML类图符号简介  

2012-10-16 22:27:12|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

http://blog.sina.com.cn/s/blog_855ab1290100su33.html

1. 类(Class:使用三层矩形框表示。 

第一层显示类的名称,如果是抽象类,则就用斜体显示。 
第二层是字段和属性。 
第三层是类的方法。 
注意前面的符号,‘+’表示public‘-’表示private‘#’表示protected。 

2. 接口:使用两层矩形框表示,与类图的区别主要是顶端有<<interface>>显示。 
第一行是接口名称。 
第二行是接口方法。 

3. 继承类(extends):用空心三角形+实线来表示。 

4. 实现接口(implements):用空心三角形+虚线来表示 

5. 关联(Association):用实线箭头来表示,例如:燕子与气候 

6. 聚合(Aggregation):用空心的菱形+实线箭头来表示 
聚合:表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,例如:公司和员工 

组合(Composition):用实心的菱形+实线箭头来表示 
组合:部分和整体的关系,并且生命周期是相同的。例如:人与手 

7. 依赖(Dependency):用虚线箭头来表示,例如:动物与氧气 

8. 基数:连线两端的数字表明这一端的类可以有几个实例,比如:一个鸟应该有两只翅膀。如果一个类可能有无数个实例,则就用‘n’来表示。关联、聚合、组合是有基数的

类之间的关系

   UML把类之间的关系分为以下5.

   ● 关联:类A与类B的实例之间存在特定的对应关系

   ● 依赖:类A访问类B提供的服务

   ● 聚集:类A为整体类,类B为局部类,类A的对象由类B的对象组合而成

   ● 泛化:类A继承类B

   ● 实现:类A实现了B接口  

关联(Association

   关联指的是类之间的特定对应关系,在UML中用带实线的箭头表示。按照类之间的数量对比,关联

可以分为以下三种:

   ● 一对一关联

   ● 一对多关联

   ● 多对多关联

注意:关联还要以分为单向关联和双向关联

依赖(Dependency

   依赖指的是类之间的调用关系,在UML中用带虚线的箭头表示。如果类A访问类B的属性或者方法,

或者类A负责实例化类B,那么可以说类A依赖类B。和关联关系不同,无须在类A中定义类B类型的属性。

聚集(Aggregation

   聚集指的是整体与部分之间的关系,在UML中用带实线的菱形箭头表示。

聚集关系还可以分为两种类型:

   ● 被聚集的子系统允许被拆卸和替换,这是普通聚集关系。

   ● 被聚集的子系统不允许被拆卸和替换,这种聚集称为强聚集关系,或者组成关系。

    注:强聚集(组成)可用带实线的实心菱形箭头表示。   

泛化(Generalization

   泛化指的是类之间的继承关系,在UML中用带实线的三角形箭头表示。  

实现(Realization

   实现指的是类与接口之间的关系,在UML中用带虚线的三角形箭头表示。

以下是GOF设计模式中的描述

       箭头和三角表示子类关系。

           虚箭头线表示一个类实例化另一个类的对象,箭头指向被实例化的对象的类。

           普通的箭头线表示相识(acquaintance也叫关联或者引用),意味着一个对象仅仅知道另一个对象。相识的对象可能请求彼此的操作,但他们不为对方负责,它只标示了对象间较松散的耦合关系。

          尾部带有菱形的箭头线表示聚合(aggregation),意味着一个对象拥有另一个对象或者对另一个对象负责。一般我们称一个对象包含另一个对象,或者是另一个对象的一部分。聚合意味着聚合对象和其所有者具有相同的生命周期。   
          抽象类名以斜体表示,抽象操作也以斜体表示。图中可以包括实现操作的伪代码,代码将出现在带有褶角的框中,并用虚线将该褶角框与代码所实现的操作相连。

 

图一:



此实线箭头表示继承从一个非接口类的继承.

图二:

【转】UML类图符号简介



那条连线表示双向关联:
看左边, Flight扮演assignedFights角色01Plane跟他关联(一个航班要么取消了没有飞机,要么只能对应一架飞机)
看右边, Plane扮演着assignedPlane角色0到多个Flight跟他关联(一个飞机可以参与多个航班也可以停在仓库里面烂掉)

图三:



那条连线表示单向关联:
基本的意义跟上面的是一样的唯一不同的是右边的类对左边的类是一无所知的.

图四:



那个大的包围的框叫软件包名字为Account, 就一些可以归类的类包装起来.

图五:

【转】UML类图符号简介

如此虚线的箭头表示实现一个接口.

图六:

【转】UML类图符号简介



水平的连线还是表示上面所说的关联但从关联连线中引伸出来的虚线这意味当Flight类的一个实例关联到 FrequentFlyer 类的一个实例时,将会产生 MileageCredit 类的一个实例.

图七:
【转】UML类图符号简介

带菱形的箭头表示基本聚合由上图知道, Wheel类扮演wheels角色聚合4个到Car对象里面去,
空心的菱形表示Wheel对象并不随Car的创建而创建,销毁而销毁.

图八:

【转】UML类图符号简介



意义和上面类似唯一不同的是实心菱形表示Department对象随Company对象的创建而创建,销毁而销毁.

图九:

【转】UML类图符号简介

http://blog.sina.com.cn/s/blog_855ab1290100su33.html
  评论这张
 
阅读(510)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018