1. 程式人生 > >《瘋狂Java講義(第4版)》-----第2章【UML】

《瘋狂Java講義(第4版)》-----第2章【UML】

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)

在這裡插入圖片描述

上面僅僅完成了類圖的基本繪製,其他圖的學習待續。。。