一. 类图语法学习小结(类间关系的表示方法)
1.抽象类和接口
我们用关键字abstract
或abstract class
来定义抽象类(抽象类用斜体显示).也可以使用interface
,annotation
和enum
关键字.
abstract class AbstractListabstract AbstractCollectioninterface Listinterface CollectionList <|-- AbstractListCollection <|-- AbstractCollectionCollection <|- ListAbstractCollection <|- AbstractListAbstractList <|-- ArrayListclass ArrayList { Object[] elementData size()}enum TimeUnit { DAYS HOURS MINUTES}annotation SuppressWarnings
2.包
我们可以使用 package
声明包(包可以被定义为嵌套).
@startumlpackage "Classic Collections" #777777 { Object <|-- ArrayList}package net.sourceforge.plantuml { Object <|-- Demo1 Demo1 *- Demo2}@enduml
3.命名空间
在包中,类的名称是该类的唯一标识符,这意味着在不同的包中不能有两个同名的类.
在这种情况下,应该使用名称空间而不是包。
@startumlclass BaseClassnamespace net.dummy #777777 { .BaseClass <|-- Person Meeting o-- Person .BaseClass <|- Meeting}namespace net.foo { net.dummy.Person <|- Person .BaseClass <|-- Person net.dummy.Meeting o-- Person}BaseClass <|-- net.unused.Person@enduml
4.关系类
我们可以在定义了两个类之间的关系后定义一个 关系类 association class.
@startumlclass Student { Name}Student "0..*" - "1..*" Course(Student, Course) .. Enrollmentclass Enrollment { drop() cancel()}@enduml
5.帮助布局
有时,帮助布局并不完美.我们可以使用together关键字将一些类组合在一起:布局引擎将尝试将它们组合在一起(就像它们在同一个包中).
@startumlclass Bar1class Bar2together { class Together1 class Together2 class Together3}Together1 - Together2Together2 - Together3Together2 -[hidden]--> Bar1Bar1 -[hidden]> Bar2@enduml
二. 书店图书管理系统
类:
图书|会员|会员卡|工作人员|售卖信息
类的属性:
图书:
图书编号:string
ISDN号:string
书名:string
作者:string
出版社:string
定价:float
出版日期:date
会员:
会员编号:string
姓名:string
性别:string
出生日期:date
职业:string
电话:string
地址:string
邮编:int
邮箱:string
会员卡:
会员编号:string
办证日期:date
会员积分:string
会员等级:string
补办日期:date
工作人员:
工作人员编号:string
姓名:string
性别:string
出生日期:date
岗位:string
学历:string
职称:string
售卖信息:
图书编号:string
出售日期:date
书名:string
会员编号:string
工作人员编号:string
三. 上述类之间关系
会员(1)--(1)会员卡
会员卡
|
工作人员 -- 出售 -- 售卖信息
|
图书
图书(1)<--(n)售卖信息(n)-->(1)会员卡
(n)
|
\/
(1)
工作人员
四. 类图脚本程序
@startumlskinparam class { BackgroundColor F0F0F0 ArrowColor 919191 BorderColor B5B5B5}skinparam stereotypeCBackgroundColor CDC5BFpackage "图书信息" #D6D6D6{ class 图书{ - 图书编号:string - ISDN号:string - 书名:string - 作者:string - 出版社:string - 定价:float - 出版日期:date } class 售卖信息{ - 图书编号:string - 出售日期:date - 书名:string - 会员编号:string - 工作人员编号:string }}package "会员信息" <> #D6D6D6{ class 会员{ - 会员编号:string - 姓名:string - 性别:string - 出生日期:date - 职业:string - 电话:string - 地址:string - 邮编:int - 邮箱:string } class 会员卡{ - 会员编号:string - 办证日期:date - 会员积分:string - 会员等级:string - 补办日期:date }}class 工作人员{- 工作人员编号:string- 姓名:string- 性别:string- 出生日期:date- 岗位:string- 学历:string- 职称:string}会员卡"1" -- "1"会员图书"1" <-left- "n"售卖信息售卖信息"n" -right-> "1"会员卡售卖信息"n" --> "1"工作人员@enduml
五.类图