重温UML六大关系

目录

引言    

1、继承(泛化)。

2、实现关系。

3、关联关系。

4、聚合关系。

5、合成关系(组合)。

6、依赖关系。

总结


引言    

 在软件系统中,类不是孤立存在的,类与类之间存在各种关系。根据类与类之间的耦合度从弱到强排列,UML 中的类图有以下几种关系:继承(泛化)关系、实现关系、关联关系、聚合关系、组合关系和依赖关系。其中泛化和实现的耦合度相等,它们是最强的。

1、继承(泛化)。

说明:这种关系就是面向对象语言中的继承关系,逻辑上可以用"is a"表示。

代码体现:子类继承父类。

UML符号:一条实线+空心箭头。

例子:鸟继承了动物。

重温UML六大关系_第1张图片

class Bird:Animal  //继承动物类

{

}

2、实现关系。

说明:和泛化关系相似,逻辑上也是用"is a"表示。区别在于实现关系继承一个抽象类(abstract、interface),而泛化关系继承一个具体类。

代码体现:实现接口或继承某个抽象类。

UML符号:一条虚线+空心箭头。

例子:大雁实现飞翔接口

class WideGoose : IFly

{

}

重温UML六大关系_第2张图片

3、关联关系。

  说明:是整体与部分的关系。逻辑上能用"has a"表示。

 代码体现:成员变量。

 UML符号:双向关联,一条实线或一条实线+两个箭头;单向关联,一条实线+一个箭头。

例子:企鹅需要“知道”气候的变化

重温UML六大关系_第3张图片

class Penguin :Bird

{

        private Climate climate;  //在企鹅中,引用到气候对象

}

4、聚合关系。

说明:是整体与部分的关系,部分能脱离整体而独立存在。逻辑上能用"has a"表示。

代码体现:成员变量

 UML符号:空心菱形+实线箭头

例子:每只大雁都是属于一个雁群,一个雁群可以有多只大雁

重温UML六大关系_第4张图片

class WideGooseAggregate

{

        private WideGoose [ ] arrayWideGoose; 

        //在雁群WideGooseAggregate类中,有大雁数组对象arrayWideGoose

}

5、合成关系(组合)。

说明:是整体与部分的关系,但部分不能脱离整体而独立存在。逻辑上能用"has a"表示。

代码体现:成员变量。

UML符号:实心菱形+实线箭头。

例子:鸟拥有两对翅膀

重温UML六大关系_第5张图片

class Bird

{

        private Wing wing;

        public Bird()

        {

                wing=new Wing();

                //在鸟Bird类中,初始化时,实例化翅膀Wing,他们之间同时生成。

        }

}

6、依赖关系。

说明:是一种使用关系,即一个类的实现需要另一个类的协助。逻辑上能用"use a"表示。

尽量不要使用双向依赖。

代码体现:局部变量、方法的参数和静态方法的调用。

UML符号:一条虚线+箭头。

例子:动物依赖水和氧气

重温UML六大关系_第6张图片

abstract class Animal

{

public Netabolism (Oxygen oxygen , Water water)

{

}

}

总结

总而言之,学习类图的六大关系有助于我们理解和设计软件系统的结构和行为。它们为我们提供了一种形式化的方法来表达类之间的连接和交互方式,提高了软件开发的效率和质量。同时,掌握这些关系也是面向对象编程思想的基础,使我们能够更好地利用面向对象的特性和优势来开发高质量的软件。

你可能感兴趣的:(✿✿UML,c#)