打开UML类图的正确姿势

Posted 小鱼与Java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打开UML类图的正确姿势相关的知识,希望对你有一定的参考价值。

UML(Unified Modeling Language) 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简单却非常重要,在UML规则中相互联系和扩展。以上内容来自百度百科。

推荐一个绘图和学习的在线工具ProcessOn

UML类图,属于UML图中的一种,是在面向对象语言用中用来表示一个类的图形,基本的UML类图如下所示:

类简单表示:

如上图,就表示一个类,三个格子从上至下分别表示:

  • 类名(如果是接口,就使用斜体表示)

  • 类的特性(一般是类的字段和属性,可没有这一行)

  • 类的操作(一般是类的方法或行为)

它们前边的符号有以下几类:

“+”表示public,“-”表示private,“#”表示protected

即最上边的UML类图表示代码如下:

    
      
      
    
  1. public class Student {

  2. private String name;

  3. private String sex;

  4. private int age;


  5. public void study() {

  6. System.out.println("study");

  7. }


  8. protected void sleep() {

  9. System.out.println("sleep");

  10. }


  11. public void eat() {

  12. System.out.println("eat");

  13. }

  14. //get 和set方法和这个类的属性无关

  15. }

类的关系表示:

打开UML类图的正确姿势
01
继承关系(空心三角形加实线表示)
  打开UML类图的正确姿势
    
      
      
    
  1. public class SeniorSchool extends Student {


  2. public void graduate() {

  3. System.out.println("毕业");

  4. }

  5. public void cllegeEntranceExam() {

  6. System.out.println("高考");

  7. }

  8. }


打开UML类图的正确姿势
02
实现接口(空心三角形加虚线表示) 


打开UML类图的正确姿势

  • 让高三学再实现玩这个接口

    
      
      
    
  1. public interface Play {

  2. void play();

  3. }

    
      
      
    
  1. public class SeniorSchool extends Student implements Play {


  2. public void graduate() {

  3. System.out.println("毕业");

  4. }


  5. public void cllegeEntranceExam() {

  6. System.out.println("高考");

  7. }

  8. //实现接口方法

  9. @Override

  10. public void play() {

  11. System.out.println("高三学生玩");

  12. }

  13. }


打开UML类图的正确姿势
03
依赖关系(用虚线箭头表示)

所谓依赖关系,就是构造这个类的时候,可以依赖其他的类。比如:人类依赖水和空气,学生也是人类,表示如下:

打开UML类图的正确姿势

  • Student有一个构造方法如下:

    
      
      
    
  1. /**

  2. * Student的一个构造方法

  3. * 依赖于Air 和 Water

  4. *

  5. * @param air

  6. * @param water

  7. */

  8. public Student(Air air, Water water) {


  9. }


打开UML类图的正确姿势
04
关联关系(使用实线箭头表示)

所谓关联关系,其实就是这个类有一个属性是其他类,如下图和代码。

打开UML类图的正确姿势

  • 宿舍类

    
      
      
    
  1. public class Dormitory {

  2. private String num;

  3. }

  • 高一学生类

    
      
      
    
  1. public class PrimaryStudent extends Student {


  2. private Dormitory dormitory;

  3. }

注意它和依赖关系的区别,有很多小伙伴很容易理解为这才是依赖关系

打开UML类图的正确姿势
05
聚合关系(使用空心菱形和实线箭头表示)

打开UML类图的正确姿势 直接看代码,一目了然,学校中有很多学生就是一个聚合关系。说这个学校可能是有些难以被接受,如果是用学生群来表示可能会更容易理解

    
      
      
    
  1. public class School {

  2. private Student[] students;

  3. }


打开UML类图的正确姿势
06
合成(组合)关系
(用实心菱形和实线箭头表示)

  • 它表示的是一种强‘拥有’关系,和之前的依赖与关联有很大的相似,就比如Stuent类中的这个name,sex,age属性,它就是一种组合关系,它们是一个Student类的组成,因为在初始化一个Student对象时,这三个就必须有。虽然这三个的类型是一个基本类型,如果是一个类的话就更好理解了,但是“万物皆对象”,也是可以勉强理解的。

  • 为了更好的理解,我们就给Student这个类一个组合关系的Book类。

打开UML类图的正确姿势

    
      
      
    
  1. public class Student {

  2. private Book book;


  3. public Student(Book book) {

  4. this.book = book;

  5. }

  6. }

最后再贴上整个图:

Java学习

设计模式

数组结构算法

小鱼与Java


以上是关于打开UML类图的正确姿势的主要内容,如果未能解决你的问题,请参考以下文章

UML的正确姿势

UML中类图的关系是不是正确?

程序员必备UML类图的画法

UML类图的五种关系小结

UML类图自动生成,太爽了

设计模式之UML类图的常见关系