類型化集合

2003 年 6 月 17 日

當人們開始使用物件,特別是在強類型語言中時,一個常見的問題是他們是否應該針對不同的網域類型擁有特定的集合類別。因此,如果您有一個儲存員工集合的公司類別,您應該使用函式庫中的常規集合類別,還是應該建立一個特定的 EmployeeList 類別 - 一個類型化集合。

(當然,如果您有泛型,那麼您只需要在此處使用一個參數化類別 - 但我假設您正在使用像 Java 或 C# 之類的東西,它們還沒有這個功能。)

使用類型化集合的主要論點是它促進類型安全性。您可以確保只將員工新增到類別中,您還可以確保從集合中取得的任何元素都經過適當的類型化 - 因此避免了難聞的向下轉型。

然而,整體而言,這並不值得麻煩。如果您正在使用集合,您應該讓它成為 EncapsulatedCollection,以便在更新時保護類型安全性。處理存取時的向下轉型是一個好主意,但涉及大量樣板程式碼。您可以透過程式碼產生來減輕這種痛苦 - 但我的看法是,這比它值得的麻煩還多。