美文网首页
打开UML类图的正确姿势

打开UML类图的正确姿势

作者: 爱吃肉的吠吠 | 来源:发表于2020-02-16 23:54 被阅读0次

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

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

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


UML图入门UML图学习UML类图

类简单表示:

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

  • 类名(如果是接口,就使用斜体表示)
  • 类的特性(一般是类的字段和属性,可没有这一行)
  • 类的操作(一般是类的方法或行为)

它们前边的符号有以下几类:“+”表示public,“-”表示private,“#”表示protected

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

public class Student {
    private String name;
    private String sex;
    private int age;

    public void study() {
        System.out.println("study");
    }

    protected void sleep() {
        System.out.println("sleep");
    }

    public void eat() {
        System.out.println("eat");
    }
//get 和set方法和这个类的属性无关
}

类的关系表示:

  1. 继承关系(空心三角形加实线表示)


    UML图入门UML图学习UML类图
public class SeniorSchool extends Student {

    public void graduate() {
        System.out.println("毕业");
    }
    public void cllegeEntranceExam() {
        System.out.println("高考");
    }
}
  1. 实现接口(空心三角形加虚线表示)


    UML图入门UML图学习UML类图
  • 让高三学再实现玩这个接口
public interface Play {
    void play();
}
public class SeniorSchool extends Student implements Play {

    public void graduate() {
        System.out.println("毕业");
    }

    public void cllegeEntranceExam() {
        System.out.println("高考");
    }
//实现接口方法
    @Override
    public void play() {
       System.out.println("高三学生玩");
    }
}
  1. 依赖关系(用虚线箭头表示)

    所谓依赖关系,就是构造这个类的时候,可以依赖其他的类。比如:人类依赖水和空气,学生也是人类,所以如下
  • Student有一个构造方法如下:
/**
     * Student的一个构造方法
     * 依赖于Air 和 Water
     *
     * @param air
     * @param water
     */
    public Student(Air air, Water water) {

    }

  1. 关联关系(使用实线箭头表示)

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

UML图入门UML图学习UML类图
  • 宿舍类
public class Dormitory {
    private String num;
}
  • 高一学生类
public class PrimaryStudent extends Student {

    private Dormitory dormitory;
}
  • 注意它和依赖关系的区别,有很多小伙伴很容易理解为这才是依赖关系
  1. 聚合关系(使用空心菱形和实线箭头表示)


    UML图入门UML图学习UML类图

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

public class School {
    private Student[] students;
}
  1. 合成(组合)关系(用实心菱形和实线箭头表示)
  • 它表示的是一种强‘拥有’关系,和之前的依赖与关联有很大的相似,就比如Stuent类中的这个name,sex,age属性,它就是一种组合关系,它们是一个Student类的组成,因为在初始化一个Student对象时,这三个就必须有。虽然这三个的类型是一个基本类型,如果是一个类的话就更好理解了,但是“万物皆对象”,也是可以勉强理解的。
  • 为了更好的理解,我们就给Student这个类一个组合关系的Book类。
UML图入门UML图学习UML类图
public class Student {
    private Book book;

    public Student(Book book) {
        this.book = book;
    }
}

欢迎关注我的微信公众号“小鱼与Java”,


最后再贴上整个图:

相关文章

  • 打开UML类图的正确姿势

    UML(Unified Modeling Language) 统一建模语言,又称标准建模语言。是用来对软件密集系统...

  • [一]UML入门

    类图 二 UML类图讲解 三 UML类图讲解-自上而下 四 UML类图讲解-对比讲解

  • JavaScript面向对象之UML类图

    UML类图 什么是UML类图 UML(Unified Modeling Language)类图,中文意思为“统一建...

  • 一张图简述UML类图

    一张图简述UML类图 UML建模常用视图中,类图可算是最多的,初学UML的类图绘制,基于starUML工具,现简记...

  • Java自学-接口与继承 UML图

    UML 图 步骤 1 : UML 图 —— 类之间的关系 UML-Unified Module Language统...

  • 设计模式补完计划

    目录 1.uml类图2.uml时序图3.设计模式 uml类图 泛化关系(继承):指类继承自类,接口继承自接口的关系...

  • SDWebImage源码阅读(一)--基础架构

    SDWebImage架构图 SDWebImage的UML类图,具体UML类图的阅读规则,可以参考这篇文章:UML基...

  • 【JS设计模式3】UML类图

    UML类图 UML类图的画图工具 MS Office visio https://www.processon.co...

  • UML小结

    UML:统一建模语言;常见的UML图有: 类图 类图[https://blog.csdn.net/weixin_4...

  • UML总结

    uml概述 uml形式 类图 时序图 类图是展示软件项目中,类与类关系的逻辑图。时序图展示的是软件的方法调用流程。...

网友评论

      本文标题:打开UML类图的正确姿势

      本文链接:https://www.haomeiwen.com/subject/fkevfhtx.html