has-a
物件導向程式設計的物件組合關係 / 維基百科,自由的 encyclopedia
has-a(或是has_a、has a)是物件組合(英語:Object composition)的關係,尤其是在資料庫設計(英語:Database design)與物件導向程序設計以及物件導向的系統分析的程式設計領域,就是一個物件(部件/組合成分/成員)「屬於」另一個物件(複合型態),而且是根據物件的擁有權規則來執行動作。這個屬於關係也就是一個物件成為另一個物件的「一部分」,例如物件A成為物件B的一部分也就是物件B的成員。
此條目沒有列出任何參考或來源。 (2024年8月2日) |
![]() | 此條目可參照英語維基百科相應條目來擴充。 (2024年8月1日) |
簡單來說,has-a關係對於物件來說就是物件的成員變數,或是成員物件。多個has-a關係會組成產生一個獨佔性的階層狀態。
相關概念
分類性階層(子類型)的is-a關係與has-a是相互對比的概念[註 1]。
範例
ER模型
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/ER_Diagram_MMORPG.svg/640px-ER_Diagram_MMORPG.svg.png)
資料庫的has-a關係通常以ER模型來表示。
如圖所示,以大型多人在線角色扮演遊戲為例,一個遊戲帳號(英語:Account)可以建立多個遊戲角色(英語:Character),這表示遊戲帳號與遊戲角色之間存在has-a關係。
註釋
- is-a關係:繼承從屬關係,多個抽象概念之間的歸類關係,物件導向程式設計的繼承概念。