WebObjects/EOF/Modeling/Entities
外觀
物件圖中的實體通常代表 關係資料庫 中的表。例如,假設正在處理一個學校。可能有一個數據庫,其中包含一個學生表和一個教室列表。在標準的 SQL 風格表示法中,學生表可能被稱為 STUDENT,教室表可能被稱為 ROOM。將會有一個“學生”實體和一個“房間”實體。
將 ROOM 表稱為該名稱是一個深思熟慮的選擇。它可以稱為 CLASSROOM。但是,可以看出,教室實際上是任何用來放置學生並希望在那裡可以教書的房間。因此,這些房間只是房間。可能還有其他更抽象的概念可以使用。可以決定,學生只是從 PERSON 列表中例項化的,這並不會出錯。選擇實體的抽象程度是一個選擇和經驗問題。
EOF 使用類 com.webobjects.eoaccess.EOEntity 來管理實體。
實體可能不是表。實體可以代表任何事物組,當以組的形式檢視該組時,這很有用。
例如,可以決定使用 PERSON 表。表中可以有一列用於“isStudent”。還有其他方法可以做到這一點,但這是其中一種方法。在這種情況下,可以將“學生”實體定義為 PERSON 表中滿足定義為“(isStudent == YES)”的 限定符 的物件。事實上,這就是使用 單表實體繼承 設定實體的方式。
還可能有一些外部資料來源,透過該資料來源可以獲取資訊。例如,外部工具可以從紐約證券交易所檢索價格資訊。可以將“今天從紐約證券交易所收到的價格”列表建模為一個實體,儘管它是一個內容不穩定的實體。可以有一個望遠鏡向資料服務報告“視野中移動的物體”。這將是一個非常不穩定的實體。這個實體中可能沒有物體出現兩次,這與關係資料庫的預期行為完全不同,但它仍然可以被視為一個實體。