类型化集合

2003年6月17日

当人们开始使用对象,特别是在强类型语言中,一个常见的问题是,他们是否应该为不同的领域类型使用特定的集合类。因此,如果您有一个公司类存储了一个员工集合,您应该使用库中的常规集合类,还是应该创建一个特定的 EmployeeList 类 - 一个类型化集合。

(当然,如果您有泛型,那么您只需在此处使用参数化类 - 但我假设您使用的是 Java 或 C# 之类的语言,这些语言尚不具备此功能。)

使用类型化集合的主要论点是它可以提高类型安全性。您可以确保只将员工添加到类中,并且还可以确保从集合中获取的任何元素都具有正确的类型 - 从而避免了难闻的向下转型。

然而,总的来说,这样做是不值得的。如果您正在使用集合,您应该将其设为封装集合,以便在更新时保护类型安全。处理访问时的向下转型是一个好主意,但涉及大量的样板代码。您可以使用代码生成来减少这种痛苦 - 但我认为这样做弊大于利。