UML 类图与对象图

UML 类图与对象图 (★★★)

#abap-objects #uml #class-diagram #association

概览表

项目 关键点
类图 描述类的结构、属性、方法及其关系
对象图 描述特定时刻的对象实例及其关系
关联 类之间的连接关系

类图 (Class Diagram)

UML类图是最重要的建模工具之一:

  • 描述系统中类的静态结构
  • 显示类的属性、方法和关系
  • 为OO编程提供蓝图

类的UML表示

1
2
3
4
5
6
7
8
9
10
┌──────────────────────┐
│ Class Name │ ← 类名(大写首字母)
├──────────────────────┤
│ - private_attr: Type │ ← 属性(-私有, +公有, #受保护)
│ + public_attr: Type │
│ # protected_attr: Type│
├──────────────────────┤
│ + method1(): Type │ ← 方法
│ - method2(param: T) │
└──────────────────────┘

可见性符号

符号 含义 ABAP对应
+ 公有 (public) PUBLIC SECTION
- 私有 (private) PRIVATE SECTION
# 受保护 (protected) PROTECTED SECTION

关联关系 (Associations)

关联类型对比

类型 UML表示 含义 生命周期
关联 实线 一般性连接 独立
聚合 空心菱形 + 实线 整体-部分关系 部分可独立存在
组合 实心菱形 + 实线 强整体-部分关系 部分不能独立存在
1
2
3
4
聚合 (Aggregation):           组合 (Composition):
◇────────── ◆──────────
Rental Vehicle Travel Flight
Agency (可独立) Agency (不可独立)

多重性 (Multiplicity)

符号 含义
1 恰好一个
0..1 零或一个
* 零或多个
1..* 一个或多个

对象图 (Object Diagram)

对象图显示特定时刻的对象实例:

  • 对象名带下划线
  • 显示实际的属性值
  • 对象之间的关系用实线连接
1
2
3
4
5
6
7
┌──────────────────────┐
│ myCar: LCL_VEHICLE │ ← 对象名:类名(带下划线)
├──────────────────────┤
│ make = "BMW" │ ← 实际属性值
│ model = "X5" │
│ speed = 120 │
└──────────────────────┘

考试/测试模式

场景/关键词 答案
“聚合与组合的区别” 聚合的”部分”可独立存在,组合的”部分”不能
“可见性符号 - + #” -=私有, +=公有, #=受保护
“多重性 0..1 的含义” 零或一个实例
“对象图 vs 类图” 对象图是类图的实例化快照