类图(Class diagram)

一个带有属性和方法的类图实例:

在这里插入图片描述

  • CD:这是一个类图,class diagram;
  • 类名auction: 一个拍卖类
  • 属性列表:属性类型可以省略
  • 类型修饰符:
    • +: public
    • -: private
    • #: protected
    • ?: readonly
  • 方法列表:不需要列举所有方法
  • 评论: 检查正确性并增加竞标数量
静态方法与静态属性

在这里插入图片描述
静态方法或属性用下划线表示。

派生属性

在这里插入图片描述
派生属性:一个属性可以从其他属性中计算(派生)得出,用"/"表示。

类图的完整性

在这里插入图片描述

  • ©: 表示完整(所有属性或方法都被列出)
  • … : 不完整 (部分属性或方法被省略)
  • 第二个图表示方法全部被列出,但是属性不完整

代码生成

Auction类生成java代码

在这里插入图片描述

生成带有get/set方法的代码

在这里插入图片描述

接口、继承

实例

在这里插入图片描述

  • 抽象类:类名斜体;抽象方法:方法斜体
  • 接口:<interface> , 方法名与类名都斜体
  • 接口实现关系:虚线加空心三角箭头
  • 继承关系:实线加空心三角箭头
Stereotype

在这里插入图片描述

  • Stereotype专门描述了模型元素的含义
    • 允许特殊表示
    • 更高效或特定于目标的代码生成
  • Stereotyp 的构成: <<name>>
tag(特征)

在这里插入图片描述

  • tag描述模型元素的属性
  • 一个tag的构成:{tagname=value}
  • {Eigenschaft=true} 可以简写成 {Eigenschaft}
    比如: {ordered}, {persistent}。

关联关系

示例

在这里插入图片描述

关联角色、关联名与基数

在这里插入图片描述

  • 人参与竞拍, „Person participates in Auction“
  • 从人的角度来看:导航到拍卖,因此
    • 关联角色“拍卖”链接
    • 一个人最多可以参加99场拍卖(0…99)
    • 一个拍卖品可以被任意的人数竞拍
  • 基数:
    • 精确的一个:1
    • 可选:0。。1
    • 任意:*
    • 非零:1…*(或+)
    • 固定间隔:3…9,17,21,42…99(但很少使用)
关联与链接

在这里插入图片描述

  • 在运行时通过链接创建关联
角色名

在这里插入图片描述

  • 角色名用于导航
  • Auction a; a.bidder; a.admin;
组合关系

在这里插入图片描述

  • 组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;
  • 他体现整体与部分间的关系,整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。
  • 表示:带实心菱形的直线表示。
  • 例如:
    • 竞标政策、时序政策与拍卖类是组合关系,没有拍卖类就没有竞标政策与时序政策
    • 人的头与嘴巴,嘴巴是头的组成部分之一,而且如果头没了,嘴巴也就没了,因此头和嘴巴是组合关系。
可导关联

在这里插入图片描述

  • 可导关系:此关联关系可以被别的推到而出
  • 比如,如果一个人是竞拍者或竞拍者的成员,他可以观看拍卖。(observers)
关联关系的特性

在这里插入图片描述

  • {frozen}: 初始化后不允许再被改变
  • {addOnly}: 保留已输出的信息
  • {ordered}: 有一个顺序
关联关系中的限定符

在这里插入图片描述

  • auctionIdent: 具有目标类属性的限定符
  • String: 类型限定符
    在这里插入图片描述
  • login允许选择单个对象
  • 限定符可以是:
    • 表示顺序({ordered})的数字间隔(0-…)
    • 任何值(限定符类型,例如字符串)
    • 目标对象(拍卖人)的显式标识符(属性)

代码生成

多父类的代码生成

在这里插入图片描述

一对多的单向关联关系的代码生成

在这里插入图片描述

  • classB不受影响
多对多的单向关联关系的代码生成

在这里插入图片描述

  • classB不受影响
  • HashSet存储多个引用
  • “get”方法返回一个不变的集合
多对多的双向关联关系的代码生成

在这里插入图片描述

  • ClassB的构造方法类似于A
  • add”或“remove”等修改方法还使用辅助函数“addLocal”和“removeLocal”调整关联的相对链接。
  • “get”方法返回一个不变的集合
带限定符的关联关系的代码生成

在这里插入图片描述

组合关系的代码生成

在这里插入图片描述

  • classB不受影响
  • 仅在对象的初始化阶段允许修改或占用
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值