型付きコレクション
2003年6月17日
人々がオブジェクトの操作を開始する場合、特に強い制約のある言語を使用する場合、よくある疑問は、さまざまなドメインタイプに特有のコレクションクラスを持たせるべきかどうかです。したがって、従業員の集合体を格納する会社クラスがある場合、ライブラリから通常の集合体クラスを使用するか、特定の EmployeeList
クラス(型付きコレクション)を作成する必要があるでしょうか。
(もちろん、ジェネリクスがあれば、パラメータ化されたクラスを使用するだけですが、ここでは Java や C# などのまだこの機能を持たないものを使用していると仮定します。)
型付きコレクションを使用する主な利点は、型安全性を促進することです。従業員のみがクラスに追加されるようにし、コレクションから取得するすべての要素が適切に型付けされるようにすることもできます。これにより、嫌なダウンキャストを回避できます。
しかし、全体として、その手間をかける価値はありません。コレクションを使用している場合は、EncapsulatedCollection にする必要があります。これにより、更新時の型安全性が保護されます。アクセス時のダウンキャストを処理するのは良い考えですが、多くの ボイラープレートコードが必要です。コード生成でこの問題を軽減できますが、私の見解ではそれに見合うだけの価値はありません。