《疯狂Java讲义(第4版)》-----第2章【UML】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ccnuacmhdu/article/details/82794938

UML(Unified Modeling Language)

PowerDesigner16.5建模工具提供了UML的如下12种图
在这里插入图片描述

一、Use Case Diagram(用例图)

在这里插入图片描述
用例图用于描述系统提供的系列功能,每个用例代表一个功能。在需求分析阶段使用。如上图,可以表示论坛网站上的几个基本功能,角色(Actor)与用例(Use Case)之间用实线连接,用例之间的依赖用虚线连接。

二、Class Diagram(类图)

这第二大点参考《设计模式》刘伟主编 胡志刚 郭克华 副主编
在这里插入图片描述
自动生成Java代码如下:

/***********************************************************************
 * Module:  Student.java
 * Author:  xxx
 * Purpose: Defines the Class Student
 ***********************************************************************/

import java.util.*;

/** @pdOid 247978df-57d9-4449-b5f7-f0dbb351cff8 */
public class Student {
   /** @pdOid ef5133ac-2705-4d82-a47d-e513e4191a03 */
   private String id;
   /** @pdOid 93fadbb4-1cff-434f-8250-d448e9079887 */
   private String name = xxx;
   /** @pdOid bade64a0-e2bf-42e5-9f08-27c7cc9df053 */
   private int age;
   
   /** @pdOid a04cff38-164f-4fed-9c9b-5dbdafbdd992 */
   protected String province;
   
   /** @pdOid 1a8ad619-b476-494e-a9c7-27267670313f */
   String school;
   
   /** @param name
    * @pdOid 377f93a0-f03f-4da8-b25a-f3b422e5c451 */
   public void setName(String name) {
      // TODO: implement
   }
   
   /** @pdOid 242cd58f-f62e-4019-822f-548caa5bf49b */
   public String getName() {
      // TODO: implement
      return null;
   }
   
   /** @param id 
    * @param name
    * @pdOid 944656b3-d124-4c39-a5f6-95e2daff855d */
   public void showInfo(String id, String name) {
      // TODO: implement
   }

}
符号的含义(更多可以参看PowerDesigner)
- private
+ public
# protected
* package

1.类之间的关系之关联关系(Association)

(1)双向关联

在这里插入图片描述

public class Customer {
   private Product[] products;

}
public class Product {
   private Customer customer;

}
(2)单向关联

在这里插入图片描述

public class Customer {
   private Address address;

}
public class Address {
}
(3)自关联

在这里插入图片描述

public class Node {
    private Node subNode;
}
(4)多重关联

在这里插入图片描述

表示方式 该类对象个数 另一个类对象个数
1…1 1 1
0…* 0个或者多个 1
1…* 1个或者多个 1
0…1 0个或者1个 1
m…n 最少m个、最多n个 1
pulic class Form{
	
	private Button[] buttons;

}


public class Button{

}
(5)聚合关系(Aggregation)

聚合关系表示整体与部分的关系,部分可以脱离整体独立存在。比如汽车和发动机的关系。
在这里插入图片描述

public class Car {

   private Engine engine;
   
   public car(Engine engine) {
    
   }
   
   public void setEngine(Engine engine) {
  
   }

}
public class Engine {
}
(6)组合关系(Composition)

组合关系表示部分与整体的关系,部分依赖整体,不能脱离整体而存在。如人的头和嘴巴之间的关系。
在这里插入图片描述

public class Head{
	private Mouth mouth;
	
	public Head(){
		mouth = new Mouth();
	}
}
public class Mouth{
}

2.类之间的关系之依赖关系(Dependency)

在这里插入图片描述

public class Driver{
	
	public void drive(Car car){
		car.drive();
	}

}
public class Car {

   public void move() {
   }

}

3.类之间的关系之继承关系(Generalization)

在这里插入图片描述

3.类之间的关系之接口实现关系(Realization)

在这里插入图片描述

上面仅仅完成了类图的基本绘制,其他图的学习待续。。。

猜你喜欢

转载自blog.csdn.net/ccnuacmhdu/article/details/82794938