zoukankan      html  css  js  c++  java
  • 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)类中所有成员函数皆是公有且都是虚函数

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

  • 相关阅读:
    使用webstorm来创建并且运行vue项目详细教程
    Jmeter后置处理器之Json提取器
    Linux常用命令
    Linux安装Mysql
    Linux安装JDK
    redhat6.5安装yum
    Linux安装python
    Linux安装Tomcat
    搞懂Redis协议RESP
    1TB是多大?
  • 原文地址:https://www.cnblogs.com/kkcoolest/p/11487433.html
Copyright © 2011-2022 走看看