【MERMAID】UML 统一建模语言 —— 类图(Diagram)

 
愿你如阳光,明媚不忧伤。

 


1. UML 概述

UML (Unified Modeling Language)统一建模语言,是一种为面向对象系统的产品进行说明可视化编制文档的一种标准语言,是非专利的第三代建模和规约语言,独立于任何具体程序设计语言。UML立足于对事物的实体、性质、关系、结构、状态和动态变化过程的全程描述和反映,可以从不同角度描述人们所观察到的软件视图,也可以描述在不同开发阶段中的软件形态。采用一组图形符号来描述软件模型,这些图形符号具有简单、直观和规范的特点,开发人员学习和掌握起来比较简单。所描述的软件模型,可以直观地理解和阅读,由于具有规范性,所以能够保证模型的准确、一致。

 


2. 类成员的可见性及返回值类型

------------------------------------------------------	
・【语法】
	+ Public				公共
	- Private				私有
	# Protected				保护
	~ Package/Internal		包 / 内部
------------------------------------------------------	
・【示例】
	class Duck{
	          String beakColor
	          +boolean swim()
	          -String quack()
	          #Object[] swim1()
	          ~List~string~ quack1()
	      }
------------------------------------------------------	
Duck String beakColor +boolean swim -String quack #Object[] swim1 ~List<string> quack1

 


3. 类图关系

------------------------------------------------------	
・【语法】[classA][Arrow][ClassB]:LabelText
	<|--	Inheritance		继承
	*--		Composition		组合
	o--		Aggregation		聚合
	-->		Association		协作
	--		Link (Solid)	链接(实线)
	..>		Dependency		依赖
	..|>	Realization		实现
	..		Link (Dashed)	链接(虚线)
------------------------------------------------------
・【示例】
	classDiagram
		classA --|> classB : Inheritance
		classC --* classD : Composition
		classE --o classF : Aggregation
		classG --> classH : Association
		classI -- classJ : Link(Solid)
		classK ..> classL : Dependency
		classM ..|> classN : Realization
		classO .. classP : Link(Dashed)
------------------------------------------------------	
classA classB classC classD classE classF classG classH classI classJ classK classL classM classN classO classP Inheritance Composition Aggregation Association Link(Solid) Dependency Realization Link(Dashed)

 


4. 关系的基数 / 多重性

------------------------------------------------------	
・【语法】[classA] "cardinality1" [Arrow] "cardinality2" [ClassB]:LabelText
	1 		Only 1				一对一
	0..1 	Zero or One			01
	1..* 	One or more			...
	* 		Many				...
	n 		n {where n>1}		...
	0..n 	zero to n {where n>1}	...
	1..n 	one to n {where n>1}	...
------------------------------------------------------
・【示例】
	classDiagram
	    Customer "1" --> "*" Ticket
	    Student "1" --> "1..*" Course
	    Galaxy --> "many" Star : Contains
------------------------------------------------------	
Customer Ticket Student Course Galaxy Star 1 * 1 1..* Contains many

 


5. 类注释

------------------------------------------------------	
・【语法】[classA] class Class_name <<desc>> Class_name 
			OR 与类定义一起在嵌套结构中 <<desc>>
	<<Interface>> 	表示接口类
	<<abstract>> 	代表抽象类
	<<Service>> 	代表服务等级
	<<enumeration>> 代表一个枚举
------------------------------------------------------
・【示例】
	classDiagram
		class Color
		<<enumeration>> Color
		class Color {
		<<enumeration>>
		    RED
		    BLUE
		    GREEN
		    WHITE
		    BLACK
		}	
------------------------------------------------------	
«enumeration1» «enumeration2» Color RED BLUE GREEN WHITE BLACK

 


6. 完整示例

------------------------------------------------------	
・【示例】
	classDiagram
	    Class01 <|-- AveryLongClass : Cool
	    <<interface>> Class01
	    Class09 --> C2 : Where am i?
	    Class09 --* C3
	    Class09 --|> Class07
	    Class07 : equals()
	    Class07 : Object[] elementData
	    Class01 : size()
	    Class01 : int chimp
	    Class01 : int gorilla
	    class Class10 {
	        >>service>>
	        int id
	        size()
	    }
------------------------------------------------------	
«interface» Class01 int chimp int gorilla size() AveryLongClass Class09 C2 C3 Class07 Object[] elementData equals() Class10 >>service>> int id size() Cool Where am i?
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值