课时106:类图
摘要:
1.UML具体内容
2.类图描述
3.Power Designer设计类图
01.UML具体内容
UML 是统一的建模语言,本质就是利用图形化的形式来实现程序类关系的描述。在之前已经画出了大量的图形,这些图形都是按照 UML标准进行的,并且最早且使用最广泛的设计工具: Rational Rose,而后出现越来越多的设计工具,而像 Power Designer 也可以实现这些类图的定义。
现在大多数人不再定义类图,一般是写完代码之后再将其转换出来,如果先画出类图再写代码,这个项目就会很难再进行下去。
02.类图描述
一般情况如果要想进行类结构的描述,往往可以使用三层的结构来表示,如图:
如果要是一个普通类的名称,往往直接编写即可,而如果是抽象类,往往使用斜体描述。“类名称”,所以为了更加清楚的描述,往往在抽象类上再加一个“ Abstract ”。
对于类中的属性可以使用“访问权限 属性名称:属性类型”的格式来进行定义,而对于访问权限基本上重点只考虑三个: Public(+)、Protected(#)、Private(-)。一般情况下属性都是在减号后面描述。
类中的方法采用的格式“访问权限方法名称():返回值”结构来描述,一般的方法都是 Public 声明。
如果每一次像这种操作形式画图会发现过于复杂繁琐,如下所示:
所以在画图时,可以通过一些工具进行作图,推荐使用 Recent Models。
03.Power Designer设计类图
开发者可以随意找到一些小的免费的开发工具,本次使用的是 Power Designer 工具进行设计。
3.1新建结构
操作方式如下所示:
打开 Power Designer 后,点击新建一个 UML Class Diagram。
如果现在要新建结构的话,只能新建类结构。
3.2接口画法
点击 UML Class Diagram 之后会出现一个工具条
其实UML中的图形很复杂,但是现在展示的是它最初的一代UML。现在的设计开发讲究稍微小巧一些。
这是类, 这是接口。
关于接口的画法,有两种形式的画法。
(1)第一种:用下面的图所示,最上方蓝色框是接口ILink,用Interface作为标注。
(2)第二种:严格来讲,接口最标准的画法,如下图所示:
上方的圈就表示一个接口,横线下方可以写上接口名称,比如这个接口叫 ILink。
正常开发而言,这里的 Abstract ILink<E> 要变成斜体的 Abstract ILink<E>,并且第二种画法没有 {abstract}。
3.3创建类方法属性
接下来做一个简单的操作形式画法
先写一个类,点击 ,届时图中出现类,如下图:
右击出现类属性,设置 Name 和 Code。
在进行类图定义的时候可以设置类中的属性 (Attributes)、类中支持的方法 (Operations)。
这里Name是在图中可以显示的,Code 是 String 的代码,Data Type 是 String 类型的。Visibility 正常属性都是 Private。设置好后点击确定。如图所示:
接下来定义方法
在类图之中进行方法创建的时候必须先创建方法,而后通过属性才
以设置它的参数。如下图所示:
点击后,会出现操作窗口。设置好相应数值点击应用。
接下来设置部门信息,继续设置类属性,如图:
设置好类设置参数,如图:
以上操作设置好后,继续设置获取部门信息,如图:
设置好后,点击下方 Add 设置构造方法,点击复制构造器:
届时出现了一行无参数的构造,这时需要添加参数,如图:
设置好后,再次在属性中添加一个构造(复制构造器)设置个无参的,如图:
此时便实现了一个类中方法的定义。点击应用确定出现类,如图:
这就是一个程序类,点击保存。
3.4生成代码
接下来将它生成代码,ctrl+g,存桌面点击确定。
这时会发现没有生成代码,是因为还没有设置 Selection ,如下图:
但是程序开始报错,是因为之前建立的时候没选择好正确的语言
这里选择 Java 语言,如图:
完成后再做一次输出,在桌面如图所示:
接下来创建一个接口,点击工具条中的 ,如图:
接下来再设置接口属性,如图:
再设置一个方法,如图:
返回的是一个接口方法,String 。
如图:
接口下面可以定一个抽象位,点击工具条中的 ,出现如下图:
再设置属性,如下图:
要想描述抽象位,需要勾选右下方 Abstract,如下图:
点击确定后,接下来定义抽象位和接口之间的关系,抽象位和接口之间的关系是实现位。图中可以这样表示,点击工具条中的 ,然后进行由子拉到父,如下图所示:
子类实现接口使用的是“三角和虚线”:
类的继承使用的是“三角和实线”:
然后再点击 简单拉一下,代码执行,如图:
这就是一个标准的结构描述,关键的是,这个标准结构描述的东西可以形成一个正常的程序,但是,如果要用此结构开发,会比较繁琐。
实际的项目开发之中,如果花费大量的人力进行这样的设计一定是没有意义(一定是无用功),所以一般会将程序的代码通过转换引擎变为图形显示。
3.5举例
现在举例一个简单的程序。
将之前的代码做一个转换,首先点击文件,文件下方有一个叫转换引擎,转换引擎里有一个叫对象语言的选项
下方有一个转换的目标形式,现在要做的是 Java 语言,所以直接选择 Java 语言,点击确定。弹出窗口,Reverse Engineer Java 这里点击 Add ,找到电脑D盘中的 Mldnjava 文件中的 JavaDemo.java,如图所示:
如果你的程序类由多个类组成,则需要把这些类全部加进来。点击确定后,如下图所示:
对于这种结构,可以根据类程序代码把类图反推回来是比较方便的一种。