總是會忘記 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 重新用自己的理解詮釋
留言列表