UML类图(二)

这篇具有很好参考价值的文章主要介绍了UML类图(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

相信希望,相信自己

上一章简单介绍了 设计模式的原则(一), 如果没有看过,请观看上一章

本文参考文章: 常见UML符号详解

UML (Unified modeling language) 统一建模语言,是一种用于软件系统分析和设计的语言工具,
它用于帮助软件开发人员进行思考和记录思路的结果。

一. UML 类图描述

如:

UML类图(二)

一.一. 修饰符

修饰符有 public private protected

其中,

public 用 + 号表示 (sex属性)

private 用 - 号表示 (name属性)

protected 用 # 表示 (age 属性)

一.二 类

单个类图,一般分三层,第一层表示类的名称;第二层表示类的特性,通常就是字段和属性;第三层是类的操作,通常是方法或行为

UML类图(二)

一.三 接口

接口类似单个类图也分三层,第一层表示接口的名称;第二层表示接口的特性,通常就是字段;第三层是接口的操作,通常是方法或行为。

接口表示方式有两种

  • 顶部有 <>显示:如IFly接口
  • 棒棒糖表示法:如Swim接口

UML类图(二)

一.四 字段

表示方式:修饰符 字段名:字段类型

例如:

  • - name:String
  • + sex:String
  • # age:int

一.五 方法

表示方式:修饰符 方法名(参数类型 参数):返回值类型

例如:

  • - think():void
  • # work(int type): void
  • + playGame(int type): String

二. 相互关系

UML 本身是一套符号的支付宝, 就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,
比如, 类,接口,实现,泛化,依赖,组合,聚合等。

继承(extends),实现(implement),关联(Association),聚合(Aggregation),合成(Composition),依赖(Dependency)。

UML类图(二)

二.一 依赖(Dependency)

定义:

  • 依赖是单向的,通常以方法参数的形式、局部变量的形式,及对静态方法调用的形式出现

代码体现:方法参数,局部变量,静态方法

表示方式:

虚线箭头来表示

UML类图(二)

public class PersonServiceBean {
    private PersonDao personDao;

    public void save(Person person) {

    }

    public IDCard getIdCard(Integer personId){
        return new IDCard();
    }

    public Dept getDept() {
        Dept dept = new Dept();
        return dept;
    }
}

依赖,是只要两个类有联系, 成员变量,方法参数, 方法返回值, 方法内变量(不遵守 迪米特法则时) 都属于 依赖

UML类图(二)

二.二 继承 (extends)

继承有的文章使用泛化(Generalization)来表示。

定义:

  • 接口与接口之间的继承关系
  • 类与类之间的继承关系

表示方式:
带三角箭头的实线空心三角形,箭头指向父类

UML类图(二)

如果 A extends B, 那么就说 A 和 B 之间存在泛化关系。

@Data
public class Student extends Person{

}

UML类图(二)

二.三 实现(implement)

定义:

  • 类对接口的实现关系

表示方式:
带三角箭头的虚线,箭头指向接口

UML类图(二)

如果 A 类 implements B 接口, 那么就是实现

public interface PersonService {
    
}


public class PersonServiceBean  implements PersonService{

}


UML类图(二)

二.四 关联关系(Association)

定义:

  • 是一种拥有的关系,它使一个类知道另一个类的属性和方法,当一个类‘知道’另一个类时,我们可以说它们之间相互关联;
  • 双向关联:可以有两个箭头或者没有箭头(不推荐);
  • 单向关联:有一个箭头,且箭头方向指向被关联的对象;

代码体现:成员变量

表示方式:
实线箭头,且箭头指向被拥有者

UML类图(二)

关联关系实际上就是类与类之间的联系,是依赖关系的特例。
相比于依赖关系, 它具有导航性: 有双向关系 或者单向关系
关系有多重性: 1 (有且只有1个) 0 (0个或者多个) 0,1 (0个或者1个) n…m (n到m个都可以) m…* (至少m个)

@Data
public class IDCard {
    private Person person;
}

@Data
public class Person {
    private IDCard idCard;
}

UML类图(二)

二.四.一 聚合关系 (Aggregation)

定义:

  • 一种弱的‘拥有’关系,体现的是 A 对象可以包含 B 对象,但 B 对象不是 A 对象的一部分;
  • 整体与部分的关系,如文学俱乐部全体成员与文学俱乐部成员

代码体现:成员变量

表示方式:
带空心菱形的实心线,菱形指向整体

UML类图(二)

聚合关系 表示的是整体和部分的关系, 整体与部分可以分开。
聚合关系是关联关系的特例, 所以他具有关联的导航性和多重性。

public class Computer {
    private Mouse mouse;
    private Monitor monitor;

    public void setMouse(Mouse mouse) {
        this.mouse = mouse;
    }

    public void setMonitor(Monitor monitor) {
        this.monitor = monitor;
    }
}

UML类图(二)

二.四.二 合成关系(Composition)

定义:

  • 一种强的‘拥有’关系,体现了部分与整体的关系,它们拥有相同的生命周期

代码体现:成员变量

表示方式:
带实心菱形的实线,菱形指向整体

UML类图(二)

如: 人 和头

@Data
public class Person {
   private IDCard idCard;
   
   // 不可以分割,在成员变量时,直接构造。
   private Head head = new Head();
}

UML类图(二)

二.五 关系图

强弱顺序:

继承=实现>组合>聚合>关联>依赖

这些之间的关系图大概是这样:

UML类图(二)


本章节的代码放置在 github 上:

https://github.com/yuejianli/DesignPattern/tree/develop/UML


谢谢您的观看,如果喜欢,请关注我,再次感谢 !!!文章来源地址https://www.toymoban.com/news/detail-487961.html

到了这里,关于UML类图(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UML--类图的表示

    1.1 访问属性 + : public - : private # : protected 1.2 接口与抽象类 斜体 表示抽象类和抽象方法 Interface 类表示接口 1.3 类图示意 Mclass - val: int + getVal(): int 2.1 实现关系 空心三角形和虚线组成 B实现A,则三角形尖尖朝向A,在三角形底边引一条虚线再连接B。 2.2 泛化关系 is a 关系, 继承关系

    2024年02月05日
    浏览(54)
  • UML的类图规则

    public:+号 private:-号 protected:#号 类图多重关系: 泛化关系: 概念:也就是继承关系。 表示方式:用带空心三角形的直线来表示。 例子:动物和猫,人和老师 关联关系: 概念:用于表示一类对象与另一类对象之间的联系。 子关系: 双向关联: 表示方式:一条直线 例子:客

    2024年02月13日
    浏览(47)
  • UML类图学习

    第一层表示类名(斜体表示抽象类) 第二层表示该类属性和字段 第三层表示该方法 注意:属性、字段或方法前面+表示Public -表示Private #表示protected,如果是静态的可以在前面加上static。 抽象类: 普通类: 第一层表示接口名称。 第二层表示接口方法。 还有一种方法是棒棒

    2024年01月23日
    浏览(43)
  • 什么是统一建模语言(UML)UML与UML类图的基本概念

    UML(统一建模语言)是一种通用的建模语言,用于描述软件系统的结构、行为和交互。它提供了一组符号和规则,用于创建可视化的图形模型,帮助开发人员、设计师和利益相关者之间进行沟通和理解。 UML起源于20世纪90年代初,由James Rumbaugh、Grady Booch和Ivar Jacobson等知名软件

    2024年02月16日
    浏览(60)
  • UML-类图和对象图

    目录 类图概述: 1.类: 2.属性: 3.类的表示: 4.五种方法: 类图的关系: 1.关联 2.聚合 3.组合 4.依赖 5.泛化 6.实现 对象图概述: 1. 对象图包含元素: 2. 什么是对象 3.对象的状态可以改变: 4.对象的行为 5.对象标识: 类和对象的区别: 类图(Class diagrams):用于定义系统中的类,包括描

    2024年02月13日
    浏览(41)
  • 设计模式(1) - UML类图

    从这一节开始,我们将一起学习设计模式。我们的学习目标是什么呢? 了解常用设计模式以及它们的使用场景; 分析实际工程中设计模式的使用,揣摩实际意图,了解作者设计思路; 尝试运用设计模式迭代、重构自己的代码; 提升软件架构设计思路。 最近在阅读 Android 源

    2024年02月09日
    浏览(35)
  • 通过Eclipse来生成UML类图

    Eclipse生成UML图简单教程: 目录 第一种方法:下载UMLet  第二种方法:在Eclipse中安装AmaterasUML插件 第三种方法:下载和配置AmaterasUML插件 1.点击导航栏Help选择Eclipse Marketplace插件市场 2.搜索UML回车,找到UMLet点击install下载 3.下载完成后,点击我同意条款,最后点击Finish按钮 4

    2024年02月04日
    浏览(40)
  • 【UML建模】类图(Class Diagram)

    在我们的日常学习、工作、考试以及面试的过程中,都会使用到类图,它是一种表示系统中的类、接口、属性和方法等静态结构的图形语言,常用于 面向对象的软件设计、分析 ,对技术实现起到指导作用,是架构师的常用工具之一。 通过类图,可以更好地理解系统的结构和

    2024年02月04日
    浏览(49)
  • 【设计模式】二、UML 类图概述

    UML类图:类(对象)本身的组成和类(对象)之间的各种静态关系 依赖、泛化(继承)、实现、关联、聚合与组合 类中用到了对方,那么他们之间就存在依赖关系 类中用到了对方 如果是类的成员属性 如果是方法的返回类型 是方法接收的参数类型 方法中使用到 泛化关系实际上就

    2024年02月09日
    浏览(39)
  • Java设计模式之UML类图

    UML图有很多种,但是并非必须掌握所有的UML图,才能完整系统分析和设计工作。一般说来,在UML图中,只要掌握类图、用例图、时序图的使用,就能完成大部分的工作。对于程序员来说,最频繁使用的莫过于类图。因此,这里我只讲解UML类图。 类图是面向对象系统建模中最常

    2024年02月03日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包