UML建模语言、设计原则、设计模式( 五 )


UML建模语言、设计原则、设计模式

文章插图
逻辑:1、2或以上的人对应多个会议(多对多);2、出席会议记录类关联了人和会议两个类,并且出席会议记录最后的结果为两边集合各自的全集的笛卡尔乘积的子集[排除重复的结果])
UML建模语言、设计原则、设计模式

文章插图
依赖箭头指向入参类A need - a B 的关系班级类和学生类 , 班级类作为学生类的方法入参
UML建模语言、设计原则、设计模式

文章插图
实现箭头指向接口学生类实现人类
UML建模语言、设计原则、设计模式

文章插图
1.2.3.1.1、各类图关系实例1.2.3.1.1.1、泛化 / 继承public class DaoSupport{private String name;public void save(Object entity){}public void delete(Object id){}}public class PersonServiceBean extends Daosupport{}使用typora的mermaid脚本画图
语法:<|-- 表示继承箭头指向的一方是被继承者
+表示public
- 表示 private
语法学习地址:Markdown教程-慕课网 (imooc.com)mermaid语法学习地址:https://mermaid-js.github.io/mermaid/#/
```mermaidclassDiagram%% 要用注释只能放在这里 , 对类图进行说明class DaoSupport{属性返回值类型放在前面 -String的-和String中间最好也别搞空格(只是这个mermaid脚本中而已),但是严格写法应该是 -name : String-String name方法返回值类型是在后面 另外:+void的+和void之间别搞空格+save(Object entity) void+delete(Object id) void}class PersonServiceBean{}DaoSupport <|-- PersonServiceBean```效果如下:
classDiagram%% 这是一个小试牛刀的类图 class DaoSupport{-String name+save(Object entity) String+delete(Object id) void }
class PersonServiceBean{
}
DaoSupport <|-- PersonServiceBean
1.2.3.1.1.2、组合public class Person {// 组合关系:某个类的对象 当做 当前类的属性,并已经new了private Head head = new Head();}
mermaid脚本画图语法:
? *--表示组合,星* 指向的是整体 即:菱形指向整体
```mermaidclassDiagramclass Person{}Person *-- Head// 表示的是:Person 组合 Head```效果如下:
classDiagram
class Person{
}
Person *-- Head
1.2.3.1.1.3、聚合public class Person {// 聚合关系private IDCard card;// 对照:组合关系private Head head = new Head();}```mermaidclassDiagram class Person{ } Person o-- IDCard// 这是字母o 不是0,菱形指向整体 即:Person聚合了IDCard```效果如下:
classDiagram class Person{
}
Person o-- IDCard
1.2.3.1.1.4、关联、依赖、实现
UML建模语言、设计原则、设计模式

文章插图
1.2.3.2、对象图
定义:表示在某时刻对象和对象之间的关系(由于对象存在生命周期 , 因此对象图只能在系统某一时间段存在)对象图是类图的实例,几乎使用与类图完全相同的标识 。一个对象图可看成一个类图的特殊用例

UML建模语言、设计原则、设计模式

文章插图
1.2.4、顺序图(时序图 / 序列图)和通信图1.2.4.1、顺序图
定义:用来表达对象间消息传递的顺序
一般来说:顺序图也叫时序图、序列图(这三个在英文中都是Sequence ),但是:严格来说(电子通讯方面) , 顺序图是顺序图,时序图 / 序列图是时序图 / 序列图(在电子通讯方面,这个实在要对应的话,就对应UML中的时间图Timing Diagram),在电子通讯领域这二者要表达的意思并不一样,但是对于我们编程这一行业来说:直接把顺序图、时序图、序列图等价也没错 , 叫其中哪一个名字都无所谓
1.2.4.2、顺序图组成
  • markdown中画时序图语法(本质是使用了mermaid脚本):https://www.imooc.com/wiki/markdownlesson/markdownsequencediagram.html
  • mermaid脚本语法:https://mermaid-js.github.io/mermaid/#/sequenceDiagram
名称说明图示参与者也叫角色,表示系统的用户(在系统之外,但与系统直接交互的对象)注:这里的用户并不一定是指人 , 如:做的是公共API接口,那API的调用者就是用户
UML建模语言、设计原则、设计模式

推荐阅读