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


各种关系的强弱顺序:


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

目录
相关文章
|
3天前
|
uml
UML之类图
UML之类图
20 1
|
6月前
|
uml
IDEA使用插件绘制UML类图+PlantUML语法讲解
IDEA使用插件绘制UML类图+PlantUML语法讲解
272 0
|
3月前
|
设计模式 数据可视化 程序员
软件设计模式:UML类图
软件设计模式:UML类图
|
1月前
|
存储 Java uml
Java-UML类图简介
Java-UML类图简介
18 0
|
3月前
|
Java uml
【开发规范】UML类图
【1月更文挑战第27天】【开发规范】UML类图
|
3月前
|
uml
UML类图
UML类图
46 0
|
3月前
|
机器人 uml 数据安全/隐私保护
快速学习UML类图查看
快速学习UML类图查看
37 0
|
3月前
|
Java 程序员 uml
【程序员小知识】使用 PlantUML 画 UML(上)类图
【程序员小知识】使用 PlantUML 画 UML(上)类图
132 0
|
8月前
|
uml
UML类图的 绘制标准 及 绘制工具
讲解绘制类图的标准,以及如何使用ProcessOn(在线工具 无需下载)轻松绘制类图
149 0
|
9月前
|
测试技术 uml
UML用例图 类图
UML用例图 类图
52 0