http://martinfowler.com/bliki/TypedCollection.html

オブジェクト指向で仕事しようと思ったとき、特に強く型付けされた言語で、よくある疑問はドメインタイプに応じてそれに特化したコレクションクラスを持つべきか? というものです。 会社クラスが従業員のコレクションを保持しているとするとき、いつものライブラリにあるコレクションクラスを使うべきでしょうか、あるいは、専用の EmployeeList クラス –型付きコレクション を作るべきでしょうか。

(もちろん型総称機能があれば、パラメータクラスを使うところでしょう。しかし、ここではJavaやC#のような、まだそういった機能のない言語を使っていると仮定します。)

型付きコレクションを使う利点の最たるものは、型安全性をもたらすことです。従業員だけがそのクラスに追加出来るように保証され、また、コレクションから取り出した要素は全て適切に型付けされていることも保証します。ちょーうざいダウンキャストを避けられます。