快速了解UML类图

UML(统一建模语言)在软件设计阶段用处非常大,UML有许多应用的分类,比如类图,时序图,构件图等等。作为开发人员,类图是经常用到的。其实也不难,掌握一些UML类图的基础知识点,平时多看多用就会很熟悉了。

UML类图其实表示的就两个方面的内容:类和类与类之间的基本关系。
我们先来看一个完整的UML类图的例子(此图截自《大话设计模式》):
这里写图片描述
类的表示:
类由一个矩形框表示,分为三层,第一层是类名,第二层是类的特性(一般来说是属性和字段),第三层是类的操作(一般来说就是类提供的方法)。如下所示:
这里写图片描述
里面的“+”,代表的是访问权限,“+”代表public,另外还有“-”表示private,“#”表示protected,还可以加个“=”指定特性的默认值,用上面的例子: + 有生命=true。
接口的表示与类基本一致,就是第一栏类名中可以在前面加上《interface》或是一个”o——”这样的棒棒糖型的图标。

类与类关系的表示:
类与类之间的关系的内容稍微多一点。

  1. 继承:
    继承的表示很简单,也比较好理解,符号就是一个空心三角形加一个实线。
    这里写图片描述
    空心三角形的尖角连接的是父类。实线连接的是子类。
  2. 接口实现
    接口实现和继承很像,只是实线换成了虚线。
    实现接口

  3. 关联(association)
    关联是指一个类知道另一个类的属性和方法,用实线+箭头表示。
    关联
    如上图,关联关系在代码实现上就是
    class Penguin{
    private Weather weather;
    }
    关联关系一般就是用成员变量的方式实现的。关联可以单向关联,也可以互相关联,甚至多对一的关联。

  4. 聚合关系(Aggregation)
    聚合体现的是一个整体与部分的关系,是一种弱依赖,即整体离开个体部分能存在,个体部分离开整体也能存在。图例中的雁群和大雁就是这样一个关系。聚合关系使用空心菱形+实线+箭头表示。
    这里写图片描述
    一般也是通过成员变量实现:
    class GooseGroup{
    Goose[] gooses
    }

  5. 组合(Composition)
    组合相比聚合,组合是一种强依赖,整体和部分的生命周期要一致,总的来说就是产生的时候一起产生,失效时一起失效。使用实心菱形+实线+箭头表示。
    这里写图片描述

    一只鸟必须要有两只翅膀,鸟和翅膀就是组合关系:
    class Bird{
    private Wings wings[];
    public Bird(){
    wings=new ….
    }
    }
    组合关系也用成员变量来表示,但是构建对象的时候要一起构建。

  6. 依赖关系(Dependency)
    依赖关系是指一个类对象的构建依赖,例如动物需要水和氧气才能生存:
    这里写图片描述
    依赖使用虚线+箭头表示。反应到代码层面就是动物类对象的创建必须依赖氧气和水:
    public class Animal{
    public Animal(Oxygen oxygen,Water water){
    }
    }

UML类图在软件设计的时候是一个很有用的工具,也不是一下子就能完全学会的。掌握基本的知识点,以后多用多学,慢慢的就能完全掌握了。
最后分享一个开源的工具:StarUML,用于UML类图的设计,很好用。

本文参考:《大话设计模式》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值