UML类图

简介: UML类图

前言


这几天回顾了《大话设计模式》,发现看类图的时候分不清了,为了加强记忆,也方便回顾,自己手动画了一次类图,并参考了网上文章将此作为笔记,记录下来。


类图


共三层:


1、类名,如果是抽象类为类名为斜体。

2、特性,字段和属性

3、操作,方法,+是公共(Publish)、-是私有(Private)、#是保护(Protected)


image.png


关系


关系有六种:


继承(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)


继承(Generalization)


描述:类与类的继承关系,子类带有父类的特性和操作


图形表示:空心三角形+实线,由子类指向父类


代码表现:继承



public class 鸟 : 动物
{
    public virtual object 羽毛
    {
        get;
        set;
    }
    public virtual void 下蛋()
    {
    }
}


 image.png


实现(Realization)


描述:类与接口的继承关系,类对接口的操作的实现


图形表示:空心三角形+虚线,由类指向接口


代码表现:继承


public class 大雁 : 飞翔
{
    public virtual void 下蛋()
    {
    }
    public virtual void 飞()
    {
    }
}

 image.png


关联(Association)


描述:拥有的关系,类A知道类B的属性和方法


图形表示:箭头+实线,指向被关联的类


代码表现:成员变量

 

public class 企鹅
{
    public virtual 气候 气候
    {
        get;
        set;
    }
    public virtual void 下蛋()
    {
    }
}


image.png


聚合(Aggregation)


描述:弱的拥有关系,整体和部分的关系,体现的是A对象,但B对象不是A对象的一部分,也就是B对象能脱离对象A而单独存在


图形表示:空心菱形+实线+箭头,箭头指向部分


代码表现:成员变量(数组)

 

public class 雁群
{
    public virtual IEnumerable<大雁> 大雁
    {
        get;
        set;
    }
    public virtual void 一行飞行()
    {
    }
    public virtual void V行飞行()
    {
    }
}

image.png


组合(Composition)


描述:强的拥有关系,体现了严格的部分和整体的关系,主要体现在部分和整体的生命周期一样。B对象是A对象的一部分,A对象不存在,B对象也不存在


图形表示:实心菱形+实线+箭头,箭头指向部分


代码表现:成员变量(构造函数里new)


public class 鸟 : 动物
{
    private IEnumerable<翅膀> 翅膀;
    public 鸟()
    {
        翅膀 = new IEnumerable<翅膀>();
    }
    public virtual object 羽毛
    {
        get;
        set;
    }
    public virtual void 下蛋()
    {
    }
}

 image.png


依赖(Dependency)


描述:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖,不然会造成死循环


图形表示:虚线+箭头,箭头指向被使用者


代码表现:局部变量、方法参数或者对静态方法的调用


public abstract class 动物
{
    public virtual object 生命
    {
        get;
        set;
    }
    public virtual void 新陈代谢(水 水,氧气 氧气)
    {
    }
    public virtual void 繁殖()
    {
    }
}

image.png


各种关系的强弱顺序:


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

目录
相关文章
|
8月前
|
uml
UML之类图
UML之类图
103 1
|
8月前
|
数据可视化 Java uml
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
469 1
|
uml
IDEA使用插件绘制UML类图+PlantUML语法讲解
IDEA使用插件绘制UML类图+PlantUML语法讲解
910 0
|
5月前
|
Java uml
使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实
该博客文章通过UML类图和Java代码示例,展示了如何使用工厂方法模式设计一个支持加法、减法、乘法和除法运算的计算机程序,并严格按照类图设计实现程序。
|
5月前
|
Java uml
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
该博客文章展示了如何使用简单工厂模式设计一个程序,该程序能够根据用户输入的运算符(加、减、乘、除)对两个数进行计算,并提供了相应的UML类图和Java源码实现。
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
|
7月前
|
应用服务中间件 uml
【UML】软件工程中常用图:类图、部署图、时序图、状态图
【UML】软件工程中常用图:类图、部署图、时序图、状态图
1051 1
|
5月前
|
数据可视化 Java uml
精通UML:从类图到序列图的实战指南
【8月更文第23天】统一建模语言(Unified Modeling Language, UML)是一种用于软件工程的标准图形化语言,它提供了一套工具来帮助开发团队可视化、构造和文档化软件系统。在UML中,类图和序列图是最常用也是最重要的两种图。类图用于描述系统的静态结构,而序列图则用于表示对象之间的交互和系统的动态行为。
245 5
|
5月前
|
设计模式 uml
设计模式常用的UML图------类图
这篇文章介绍了UML中类图的基本概念和用途,详细解释了类与接口、类之间的关系,包括继承、实现、组合、聚合、关联和依赖等六种关系,并展示了它们在类图中的表示方法。
设计模式常用的UML图------类图
|
5月前
|
uml
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
719 0
|
8月前
|
设计模式 数据可视化 程序员
软件设计模式:UML类图
软件设计模式:UML类图
171 1