UML 类图之间关系

Posted 狂澜688

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML 类图之间关系相关的知识,希望对你有一定的参考价值。

1.依赖Dependency:

//Dependency
class Boat{
    Boat(){}
};
class Man{
    Man(){}
    void river_crossing(Boat boat){}
};

 

其中 Boat 作为Man  river_crossing(过河)的参数

2.关联Association:

//Association
class Grade{
    Grade(){}
};
class Student{
    Student();
private:
    Grade grade;
};

其中 grade 作为Student的一个私有变量

3聚合Aggregation:

//Aggreation
#define N 10
class Child{
    Child();
};
class Family{
    Family();
private:
    Child child[N];
};

这里强调的是has-a

4组合Composition:

//Composition
class Room{
public:
    Room(){}
};

class House{
public:
    House(){
        room = new Room;
    }
private:
    Room *room;
};

这里强调Room随House生命周期结束而结束

5实现Relization:

//Relization
class Gun{
public:
    virtual ~Gun()=0;
    virtual void shoot()=0;
};
class AK47 :public Gun{
    virtual ~AK47() override;
    void shoot() override{
        std::cout<<"AK47 shooting"<<std::endl;
    }
};

6继承 Generalization:

class People{
public:
    People();
};
class Student :public People{
public:
    Student();
};

 

抽象类与接口的区别:

  抽象类:类中存在纯虚函数,即不能生成对象的类

  接口:接口也是特殊的类。但还要满足:

    (1)类中没有定义任何成员变量

    (2)类中所有成员函数皆是公有且都是虚函数

强弱关系: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

 

以上是关于UML 类图之间关系的主要内容,如果未能解决你的问题,请参考以下文章

UML类图(大话数据模式)

UML类图中类之间关系汇总

UML中的类图及类图之间的关系

UML类图表达

UML类图

看懂UML类图