《瘋狂Java講義(第4版)》-----第2章【UML】
阿新 • • 發佈:2018-12-11
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)
上面僅僅完成了類圖的基本繪製,其他圖的學習待續。。。