前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UML类图

UML类图

作者头像
陈珙
发布2018-09-12 10:10:00
1K0
发布2018-09-12 10:10:00
举报

前言

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

类图

共三层:

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

  2、特性,字段和属性

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

关系

关系有六种:

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

继承(Generalization)

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

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

  代码表现:继承

代码语言:javascript
复制
public class 鸟 : 动物
{
    public virtual object 羽毛
    {
        get;
        set;
    }

    public virtual void 下蛋()
    {

    }
}

实现(Realization)

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

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

  代码表现:继承

代码语言:javascript
复制
public class 大雁 : 飞翔
{
    public virtual void 下蛋()
    {

    }

    public virtual void 飞()
    {

    }

}

关联(Association)

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

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

  代码表现:成员变量

代码语言:javascript
复制
public class 企鹅
{
    public virtual 气候 气候
    {
        get;
        set;
    }

    public virtual void 下蛋()
    {

    }
}

聚合(Aggregation)

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

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

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

代码语言:javascript
复制
public class 雁群
{
    public virtual IEnumerable<大雁> 大雁
    {
        get;
        set;
    }

    public virtual void 一行飞行()
    {

    }

    public virtual void V行飞行()
    {

    }
}

组合(Composition)

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

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

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

代码语言:javascript
复制
public class 鸟 : 动物
{
    private IEnumerable<翅膀> 翅膀;
    public 鸟()
    {
        翅膀 = new IEnumerable<翅膀>();
    }

    public virtual object 羽毛
    {
        get;
        set;
    }

    public virtual void 下蛋()
    {

    }
}

依赖(Dependency)

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

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

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

代码语言:javascript
复制
public abstract class 动物
{
    public virtual object 生命
    {
        get;
        set;
    }

    public virtual void 新陈代谢(水 水,氧气 氧气)
    {

    }

    public virtual void 繁殖()
    {

    }
}

附录

各种关系的强弱顺序:

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-09-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 类图
    • 共三层:
    • 关系
      • 关系有六种:
        • 继承(Generalization)
          • 实现(Realization)
            • 关联(Association)
              • 聚合(Aggregation)
                • 组合(Composition)
                  • 依赖(Dependency)
                  • 附录
                    • 各种关系的强弱顺序:
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档