總是會忘記 Association, Aggregation, Composition 是什麼意思,所以整理了資料

分別翻譯為:關聯、聚合、組合

用車子的例子解說,以車子為核心下去解說,不然,意思會不一樣,

組合(Composition ) , Engine對車子而言,引擎是由車子產生,由車子刪除,車子可以沒有駕駛,但不能沒有引擎。

聚合(Aggregation ) ,Driver 對車子而言,駕駛是由別人產生的,能使車子行駛,但車子可以沒有駕駛。

關聯(Association ) ,Info對車子而言,Info記錄著車子的資料,車子可以沒有Info,Info也可以沒有車子。

class Driver
{   
};

class Engine
{
};

class Info
{
    list<int> id;
    list<string> name;
};

class Car
{
    Driver *driver;
    Engine *engine;
    int id;
    Car()
    {
        engine = new Engine();       
    }
    ~Car()
    {
        delete engine;
    }

    void SetDriver(Driver *driver)
    {
        this.driver = driver;
    }

    Drive()
    {
        if(driver!=null)
        {
            //...
        }
    }

};

參考 stack overflow 重新用自己的理解詮釋

arrow
arrow
    文章標籤
    UML
    全站熱搜
    創作者介紹
    創作者 史克威爾凱特 的頭像
    史克威爾凱特

    史克威爾凱特的部落格

    史克威爾凱特 發表在 痞客邦 留言(0) 人氣()