Has-a

面向对象程序设计的对象组合关系

这是本页的一个历史版本,由TimWu007留言 | 贡献2024年8月2日 (五) 01:16 (加入{{Unreferenced}}标记)编辑。这可能和当前版本存在着巨大的差异。

has-a(或是has_ahas a)是物件組合英语Object composition的關係,尤其是在資料庫設計英语Database design面向对象程序设计以及面向对象的系统分析的程式設計領域,就是一個物件(部件/組合成分/成員)「屬於」另一個物件(複合型態),而且是根據物件的擁有權規則來執行動作。這個屬於關係也就是一個物件成為另一個物件的「一部分」,例如物件A成為物件B的一部分也就是物件B的成員。

簡單來說,has-a關係對於物件來說就是物件的成员变量,或是成員物件。多個has-a關係會組成產生一個獨佔性的階層狀態。

相關概念

分類性階層(子类型)的is-a關係與has-a是相互對比的概念[註 1]

标准模板库容器是has-a關係的最佳範例。

範例

ER模型

 
ER模型

資料庫的has-a關係通常以ER模型來表示。

如圖所示,以大型多人在线角色扮演游戏為例,一個遊戲帳號(英語:Account)可以建立多個遊戲角色(英語:Character),這表示遊戲帳號與遊戲角色之間存在has-a關係。

註釋

  1. ^ is-a關係:繼承從屬關係,多個抽象概念之間的歸類關係,物件導向程式設計的繼承概念。

參考資料

相關條目