前言
本篇来了解一下类和类之间关系的表示,我们经常在看一些设计模式的文章、书籍或者是一些大佬的项目会涉及到一些类之间关系的表示,通常就用到类UML类图来做说明。本篇我们就来做一下基础扫盲,避免下次看到时候直接跳过,最后还没看明白的尴尬😅。
表示一个类
格式说明:
- 第一行:类名称
- 第二行:类属性(字段)
- 第三行:类方法(函数)
符号说明:
- +: public
- -:private
- #:protected
其他说明:
- 类名斜体代表是抽象类
表示一个接口
格式说明:
- 接口名第一行使用
<<interface>>
标记 - 第一行:接口名称
- 第二行:接口方法
表示类的继承关系
使用空心三角+实线表示A1类继承自A类。
举例说明:在面向对象的开发过程中,将具有相同属性的类进行封装,实际使用的类通过继承得到这些属性的过程。如:Student,Worker可以拥有公共的父类Person。
表示接口实现关系
使用空心三角+虚线表示A类需要实现接口1。
举类说明:在面向对象的开发工程中,将具有相同方法的类进行封装,实际用到的类通过实现接口得到这些规范方法的过程。如:Student、Worker可以拥有公共的接口Sports,并实现running、rope skipping等。
表示类的关联关系
使用实现+箭头来表示A类中包含B类。
举例说明:一个类的表现受另一个的影响会产生差异,如:Person类会关注weather的变化来决定是否添加衣服等。
表示类的聚合(弱拥有)关系
使用空心菱形和实线箭头表示A类可以拥有B类,但B类不属于A类的一部分。
7
举例说明:一个类的表现可以包含另一个类,如School类可以包含student同样可以没有student。
表示类的组合(强拥有)关系
使用实心菱形+实线箭头表示B类是A类的一部分。
举例说明:一个类的表现是通过多个类的组合来完成的,如:Person类由eye、nose、mouth、ear等等组合而成。
表示类的依赖关系
使用虚线箭头来表示A类依赖C和D类。
举例说明:一个类的表现除了组合而来的部分还会包含一个外在的依赖条件,如:Person类需要依赖water、money等。
结语
《大话设计模式》说编程是一门技术,更是一门艺术,UML类图也是需要慢慢熟练的,各位HXD可以收藏已备查询🙏。