但行好事  莫问前程

聊聊UML类图的简单使用

UML是统一建模语言的英文缩写(Unified Modeing Language)。
类图(Class Diagram)属于结构图,常被用于描述一个系统的静态结构。一个类图中通常包含类(Class)的UML图,接口(Interface)的UML图以及泛化关系(Generalization)的UML图,关联关系(Association)的UML图,依赖关系(Dependency)的UML图和实现关系(Realization)的UML图。

1. 类

在UML中,使用一个长方形描述一个类的主要构成,将长方形垂直分为三层,如下图所示:
1
顶部第一层是名字层,如果类名字是常规字形,表明该类是具体类,如果类名字是斜体字形,表明该类是抽象类。
第二层是变量层,也称属性层,列出类的成员变量及类型,格式是”变量名字:类型”。在用UML表示类时,可以根据设计的需要只列出最重要的成员变量的名字。如果变量的访问权限是public的,需要在变量的名字前面用”+”符号修饰,如果变量的访问权限是protected的,需要在变量的名字前面用”#”符号修饰,如果变量的访问权限是private的,需要在变量的名字前面用”-“符号修饰,如果变量的访问权限是友好的,变量的名字前面不需要使用任何符号修饰。
第三层是方法层,也称操作层,列出类的方法及返回类型,格式是”方法名字(参数列表):类型”。在用UML表示类时,可以根据设计的需要只列出最重要的方法。如果方法的访问权限是public的,需要在方法的名字前面用”+”符号修饰;如果方法的访问权限是protected的,需要在方法的名字前面用”#”符号修饰;如果方法的访问权限是private的,需要在方法的名字前面用”-“符号修饰;如果方法的访问权限是友好的,方法的名字前面不使用任何修饰符;如果方法是静态方法,方法的名字下面加上下划线。

2.接口

UML表示接口的UML图和表示类的UML图类似,使用一个长方形描述一个接口的主要构成,将长方形垂直地分为三层,如下图所示:
1
顶部第一层是名字层,接口的名字必须是斜体字形,而且需要用<<接口>>(<>)修饰名字并且该修饰和名字并列在第2行。
第二层是常量层,列出接口中的常量及类型,格式是”常量名字:类型”。在Java接口中,常量的访问权限都是public的,所以需要在常量名字前面用”+”符号修饰。
第三层是方法层,也称操作层,列出接口中的方法及返回类型,格式是”方法名字(参数列表):类型”。在Java接口中,方法的访问权限都是public的,所以需要在方法名字前面用”+”符号修饰。

3. 泛化关系

对于面向对象语言,UML中所说的泛化关系 就是指类的继承关系。如果一个类是另外一个类的子类,那么UML通过使用一个实现连接两个类的UML图来表示二者之间的继承关系,实现的起始端是子类的UML图,终点端是父类的UML图,但终点端使用一个空心的三角形表示实线的结束。继承关系的UML图如下所示:
1

4. 关联关系

如果A类中成员变量是用B类(接口)来声明的变量,那么A和B的关系是关联关系,称A关联于B。如果A关联于B,那么UML通过使用一个实线连接A和B的UML图,实线的起始端是A的UML图,终点端是B的UML图,但终点端使用一个指向B的UML图的方向箭头表示实线结束,关联关系的UML图如下所示:
q

5.依赖关系

如果A类中某个方法的参数是用B类(接口)来声明的变量或某个方法返回的数据类型是B类型的,那么A和B的关系是依赖关系,称A依赖于B。如果A依赖于B,那么UML通过使用一个虚线连接A和B的UML图,虚线的起始端是A的UML图,终点端是B的UML图,但终点端使用一个指向B的UML图的方向箭头表示虚线结束,依赖关系的UML图如下所示:
1

注:
在Java中,习惯上将A关联于B也称作A依赖于B,当需要强调A是通过方法参数依赖于B时,就在UML图中使用虚线连接A和B的UML图。

6.实现关系

如果一个类实现了一个接口,那么类和接口的关系是实现关系,称类实现接口。UML通过使用虚线连接类和它所实现的接口,虚线起始端是类,虚线的终端端是它实现的接口,但是终点端使用一个空心的三角形表示虚线的结束,实现关系的UML图如下所示:
1

7.注释

UML使用注释为类图提供附加的说明。UML在一个带卷角的长方形中显示给出的注释,并使用虚线将这个带卷角的长方形和所注释的实体连接起来,在类图中添加注释如下图所示:
1

打赏
欢迎关注人生设计师的微信公众账号
公众号ID:longjiazuoA

未经允许不得转载:人生设计师 » 聊聊UML类图的简单使用

分享到:更多 ()

相关推荐

  • 暂无文章

人生设计师-接受不同的声音

联系我关于我