UML简介参见JAVA学习笔记Ⅳ——多态
用例图(The Use Case Diagram) | 序列图(The Sequence Diagram) | 类图(The Class Diagram) |
---|---|---|
用例图能够以可视化的方式,表达系统如何满足所收集的业务规则,以及特定的用户需求等信息![]() | 序列图用于按照交互发生的一系列顺序,显示对象之间的这些交互![]() | UML 类图、业务逻辑和所有支持结构一同被用于定义全部的代码结构![]() |
软件安装
PowerDesigner官网
百度云链接(可自行百度,安装教程都有),如有需要可留言或私信,安装完成后的界面如下,切记最好不要汉化,汉化会造成字体以及布局上的改变,并且工程软件最好使用英文原版。
开始绘制
我们使用JAVA学习笔记Ⅳ——多态中的手机关系作为对照进行编辑
![](https://i-blog.csdnimg.cn/blog_migrate/66ff7ede8ef8e2d2a11d2242dac7f073.png)
创建一个工程,顺序如下,选择创建的模型为OO
模型【Object-Oriented Model
】,创建的图为类图【Class Diagram
】,Object Language
会默认选择JAVA,命名自定义就行了
工程创建完成后的界面效果如下
前情介绍 Toolbox,Toolbox是界面排布在右边的工具箱,在创建的OO
模型中具有放置类、接口,构造继承关系等的功能,将鼠标移动至图标位置就能显示其相应的功能,具体不再详述,参见如下:
![](https://i-blog.csdnimg.cn/blog_migrate/4906ddb57e891fb11c4d98537ad6fae1.png)
最后通过添加类与接口,选择Class
与Interface
一次排布如下
Class_1→Telphone
![](https://i-blog.csdnimg.cn/blog_migrate/01254ef54101b52fff154d43b89599a4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f13d8e7eb95f5cc8e6d91c7fec885a48.png)
Class_2→CellPhone
通过点击方法重写按钮添加需要重写的父类方法
![](https://i-blog.csdnimg.cn/blog_migrate/c3fc51ad03ae9c1b48af52e9419e7ad9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d2f443c25b096348b04852a1ba75ff3b.png)
Interface→IPlayGame
![](https://i-blog.csdnimg.cn/blog_migrate/5e5b19ca3948bf3ecdc62845a59c339d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f13ddf0c8db6bc3ec85ca8f93c60782a.png)
Class_3→SmartPhone
以及 Class_4→Psp
,先通过Realization
添加连接关系,最后通过接口implement
按钮添加即可,以SmartPhone
为例
![](https://i-blog.csdnimg.cn/blog_migrate/9e733606e64ee80fb134cf1c96e420b9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d84b2e889bb25bf663f2ba1e3909ef2e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1caef48143bc3fc5773f9de6ad2f7c6b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/dffcfd6d373aeee40b20fe2b369e1db1.png)
绘制完成后,界面效果如下
代码生成
通过选择Language
→Generate Java Code...
产生JAVA代码
最终在自己指定的文件夹下产生相应的JAVA文件
![](https://i-blog.csdnimg.cn/blog_migrate/800ab9ec34c95d442b08fd6f24c125b0.png)
对比代码
SmartPhone.java
/***********************************************************************
* Module: SmartPhone.java
* Author: Administrator
* Purpose: Defines the Class SmartPhone
***********************************************************************/
import java.util.*;
/** @pdOid f79214aa-8392-479d-abdf-b3e0e2cae12e */
public class SmartPhone extends Telphone implements IPlayGame {
/** @pdOid 6051a422-8ae5-4119-976d-8359a2550fb5 */
public void sendMessage() {
// TODO: implement
}
/** @pdOid 587cb306-af14-4ea6-b8ff-d363f3f7944c */
public void call() {
// TODO: implement
}
/** @pdOid 25c0a07d-ac8b-4dbf-b48e-d574644c9dcc */
public void playGame() {
// TODO: implement
}
}
JAVA学习笔记Ⅳ——多态中的SmartPhone.java
package com.template20;
public class SmartPhone extends Telphone implements IPlayGame{
@Override
public void call() {
System.out.println("通过语音来打电话");
}
@Override
public void message() {
System.out.println("通过语音发短信");
}
@Override
public void playGame() {
System.out.println("具有玩游戏的功能");
}
}