简单学习一下UML中的类图
学习一下UML中的类图
本文内容大量参考以下博客/简书,本文仅作为个人学习资料及与网友讨论学习使用,如果侵犯原作者的权益,请联系博主将本文删除
https://blog.****.net/MONKEY_D_MENG/article/details/6005764
https://www.jianshu.com/p/2828874af134
下面的这张图基本包含了类图的基本定义和类与类之间的关系,第一次看可能会看不懂,但是当你看完下面的内容之后,再回过头来之后你将会发现它是如此的简单。
1.类图的基本表示法
类图主要分为三层。
第一层显示类的名称,如果是抽象类,则就用斜体显示。
第二层是类的特性,通常就是字段和属性。
第三层是类的操作,通常是方法或行为。
前面的符号,+ 表示public,- 表示private,# 表示protected。
++例如:鸟是一个抽象类,有着 有羽毛、有角质喙没有牙齿 的特点,它有可以下蛋这一行
接口图主要分为两层。
第一行是接口的名称,与类图的区别主要是顶端的<<interface>>显示。
第二行是接口的方法
++例如:飞翔就是一个接口,它主要的行为/作用就是 飞
2.类图之间的关系
类与类一共有如下几种关系:泛化(Generalization)、实现(Realization)、依赖(Dependence)、关联(Association)、聚合(Aggregation)、组合(Composition)。
1.泛化关系
泛化关系在Java中也叫作继承关系,在UML中我们用带空心三角形的直线来表示 。
即:某一个类继承另一个类中的一些属性和方法
++例如:鸟继承动物,大雁、鸭子、企鹅继承鸟
2.实现关系
实现关系就是Java中类与接口的实现关系,在UML中我们用带空心三角形的虚线表示。
即:某一个类实现了某个接口
++例如:大雁实现了飞翔接口,唐老鸭实现了讲人话接口
3.依赖关系
依赖关系是一种很弱的关系,一般是指一个类使用另一个类, 这种依赖关系我们用带箭头的虚线表示,箭头指向被依赖对象。
++例如:动物的生存依赖于氧气和水
4.关联关系
关联关系是一种比较强的关系,他们的关系是比较持久的,稳定的。 关联分单向关联和双向关联,如果一个类知道或者引用了另一个类,而另一个类不知道或者没有引用这个类,则这两个类是单向关联的。 单向关联我们用带箭头的实线表示,箭头指向被引用或者被包含的类。 双向关联是两个类彼此都知道对方的存在,双向关联用不带箭头的实线来连接两个类。
++例如:企鹅和气候是一种单向关联关系,企鹅必须在合适的气候下生存,但是在某一种气候下可以不必有企鹅的存在。
5.聚合关系
聚合关系是一种特殊的关联关系,聚合关系强调的是整体和部分的关系,其中部分可以脱离整体而存在。 在UML类图中聚合用带空心菱形的直线表示,其中菱形指向整体。
++例如: 如雁群和一只大雁的关系,就是聚合关系,大雁离开雁群还是可以独立存在。
6.组合关系
组合关系也是一种特殊的关联关系,它与聚合关系很像,也是强调整体与部分的关系,不同的是部分无法脱离整体存在。在UML类图中用带实心的菱形直线表示,其中菱形指向整体。
++例如:鸟和翅膀是一种组合关系,翅膀是鸟的一部分,翅膀离开鸟之后不能单独存在。
作者:耿鬼不会笑