UML类图使用说明

       在我们学习设计模式时,最重要的一点是要明白类与类之间、类与接口之间的关系。这种关系我们可以使用UMLUnified Modeling Language 统一建模语言)类图来表示。当然,UML不仅仅可以用于java类图设计,还有很多其他作用,比如:UML用例图、UML时序图、UML状态/活动图、UML部署图、UML组件图和UML实体关系图。这里我们对UML类图的使用做一个说明。

 

这里会分两部分说明:1个是类和接口的UML表示,2是类之间、类与接口之间的6中相互关系

 

一、类和接口的UML表示

1、类的UML视图

 

比如我们定义一个Person类,定义如下:

publicclass Person {

private String name;

public void setName(String name) {

this.name = name;

}

 

public String getName() {

return name;

}

}

那么这个Person类的UML视图如下:


 

我们可以看到,类图分为了三部分:

1)类名:类名在最上面

2)属性列表

UML规定属性的表示格式为:

可见性 属性名:数据类型[= 缺省值]

 

可见性符号:用于标识这个属性可不可以被外部类访问,可见性符号有四种:

-:私有的,标识这个属性是私有属性,对应private

+ : 公有的,表示这个属性是共有属性,对应public

~ : 友好的,表示这个属性可以被同一个包中的类访问,对应package

# :受保护的,表示这个属性可以被子类访问,对应protected

缺省值:可以没有

 

3)方法列表

UML规定方法的表示格式为:

可见性 方法名[参数列表]:返回值类型

可见性:方法的可见性与属性的可见性是一样的

参数列表:参数列表中只需要标明每个参数的类型即可,不需要写明参数名称

返回值类型:表示方法的返回值的类型,如果没有返回值,则是void

 

 

2、接口的UML表示


接口和类的表示是有所区别的,首先,接口中没有属性列表,所以只分为两部分:接口名称和方法列表
 

接口名称:

UML中相对于类名,接口名称的上面有一个<<interface>>的标识,表明这是一个接口而不是类。

方法列表:

接口中的方法列表和类中的方法列表是一样的

 

2、类之间的关系

类与类之间并不是相互孤立的,他们之间存在多种关系:依赖关系、关联关系、组合关系、聚合关系、继承关系、实现关系。

 

1、依赖关系(Dependency

依赖关系是类之间的最微弱的关系,是指一个类知道或者使用另一个类。这是典型的瞬时关系,依赖类和目标类进行简单的交互,依赖类并不维护目标类的对象,仅仅只是临时使用而已。在依赖关系下,目标类通常作为依赖类的局部变量,方法参数,静态方法调用时出现。依赖关系的两个类是由带箭头的虚线连接起来的,箭头由依赖类指向目标类,如下:


 

2、关联关系

关联关系是比依赖关系更强的一种关系,是指一个类包含另一个类的对象,比如类A包含类B的对象,那么类B通常是作为类A的全局属性出现的,两者之间可以长期合作。具有关联关系的两个类使用带箭头的实线来连接。关联关系又分为单向关联和双向关联,他们的示意图如下:

单向关联:


双向关联:

 

3、聚合关系(Aggregation

聚合关系表示整体与部分的关系,在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而存在。在UML中聚合关系中的类使用带空心菱形箭头的实线连接。菱形箭头指向整体类,关系示意图如下:

WheelCar的组成部分,但是Wheel又可以脱离Car而单独存在。

 

 

 

4、组合关系(Composition

组合关系也是部分与整体的关系。成员对象是整体对象的一部分,并且成员对象不能脱离整体对象而存在。这也是组合关系与聚合关系之间的区别之处。在组合关系中,两个类以带实心菱形箭头的实线连接。如下:

手和脚是人的组成部分,手和脚是不能脱离人体而单独存在的。

 

 

5、泛化关系(Generalization

泛化关系用于描述父类和子类之间的关系,父类又称为基类和超类,子类又称作派生类。

繁华关系分为两种:继承关系和实现关系

 

继承关系是是两个具体类之间的泛化关系,两个类之间使用带空心三角箭头的实线连接,如下:

 

实现关系是指类和接口之间的泛化关系,类和接口之间使用带空心三角箭头的虚线连接,如下:

 


        在学习类与类之间的关系时,最重要的是要清楚每种关系的含义和类图。

        类与类之间的关系可以说是两两分类的:依赖关系和关联关系、聚合关系和组合关系 、泛化关系中的继承和实现关系。

同一类关系要表达的类与类之间的关系比较接近,而且类图也比较相似,这有助于我们记忆。

 

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值