码迷,mamicode.com
首页 > 其他好文 > 详细

UML 类图之间关系

时间:2019-09-08 18:10:48      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:out   ade   src   oom   泛化   依赖   成员函数   ima   override   

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 类图之间关系

标签:out   ade   src   oom   泛化   依赖   成员函数   ima   override   

原文地址:https://www.cnblogs.com/kkcoolest/p/11487433.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!