前言
简单整理一些uml中的类图。
正文
类的基本表示法:
名称、属性(类型、可见性)、方法(参数、返回值、可见性)
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/e8b2f2a3d6bac6bfef33458f5f7c4cdd.png)
想上面这样,第一行是名称,第二行是属性,第三行是方法
可见性:
- 表示public
- 表示private
表示protect
接口表示法:
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/fffece925de70700f3b7fc783e245d32.png)
接口和类差不多,但是前面有一个<
包表示法:
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/a95a8234f249bc1baafa8663904985c5.png)
包可以表示层级关系:
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/f909f5eb7a2d76ed7e696575954b641c.png)
包还可以用来组织各种内容:
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/a47170be0b9365024be9ff7f75d81a45.png)
包是一个层级更大的概念,可以指不同层级,也可以指不同的子系统等。
类与类之间的关系:
- 依赖关系
- 关联关系
- 泛化(extends)
- 实现(implements)
- 聚合关系
- 组合关系
现在来一一看下他们的关系:
关联关系:
关联关系分为双向关系和单向关系:
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/625d40322bbe34a99e686a474ac22f79.png)
双向这样表示也是可以的:
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/5880a10aa173efb59d730417104dd808.png)
就是用一更横向表示。
那么双向管理有两种表示法,一种是双向实心箭头,或者一根横线。
比如老师和学生,老师拥有多名学生,学生可以有多名老师。
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/343c437ecb9b650a3dcd66d763dd2098.png)
单向关联如上,一个人拥有多个地址,但是地址和人没有关系。
也有些地方这样表示的:
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/e58ff8e6e27fa596aa0d02bda0a8c630.png)
表示他们1对多的关系。
这样表示都是可以的。
然后值得注意的是有些地方把双向关系称为关联,单项关系称为关系。
这是一个值得注意的地方,看团队的语义。
最后一个关联是自关联:
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/790f35dc1fb17ee5f7425998d189d4fd.png)
比如节点下面有节点,这就是自关联了。一个节点Node的成员又是节点对象。
下面是实现:
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/277c55d28fc2806217e8d5be5132543e.png)
比如UserDaoImpl 实现 UserDao。
用的是虚线和空心箭头。
然后是继承关系:
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/d15020b219bd348acd43aaccec80426b.png)
比如狗继承动物,用的是实现空心箭头。
下面是依赖关系:
![UML 哲学之道——类图[三]-小白菜博客](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/e804924277cd20e5711323bf559ae157.png)
用的是虚线箭头表示。
聚合关系:
聚合(Aggregation)关系表示整体与部分的关系
在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在
在UML中,聚合关系用带空心菱形的直线表示
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/e0bdfaae3b2b88596fe26964ea077a61.png)
飞机场里面有飞机。
组合关系:
组合(Composition)关系也表示类之间整体和部分的关系,但是在组合关系中整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也将不存在
成员对象与整体对象之间具有同生共死的关系
在UML中,组合关系用带实心菱形的直线表示
![UML 哲学之道——类图[三]](https://blog.xiaobaicai.fun/wp-content/uploads/2022/11/2e2fffefbe8b4d603e620ecad82a59be.png)
结
下一节领域模型