ファクトリ モデルの概要
ADO.NET 2.0 では、System.Data.Common 名前空間に新しい基本クラスが導入されました。 基本クラスは抽象的な存在です。つまり、直接インスタンス化することはできません。 新しい基本クラスとしては、DbConnection、DbCommand、DbDataAdapter があり、System.Data.SqlClient や System.Data.OleDb などの .NET Framework データ プロバイダーによって共有されます。 基本クラスが追加されたことで、新しいインターフェイスを作成しなくても、.NET Framework データ プロバイダーに対して容易に機能を追加できるようになりました。
また、ADO.NET 2.0 で抽象基本クラスが導入されたことにより、開発者は特定のデータ プロバイダーに依存しない汎用的なデータ アクセス コードを記述できるようになりました。
ファクトリ デザイン パターン
単一の API で複数プロバイダーのデータベースにアクセスできる "ファクトリ" デザイン パターンの使用は、プロバイダーに依存しないコードを作成するプログラミング モデルの基礎となるものです。 このパターンでは、現実世界の工場のように、他のオブジェクトを作成するためだけに特殊なオブジェクトを使用するため、適切なネーミングがなされていると言えます。 ファクトリ デザイン パターンの詳細な説明については、「ASP.NET 2.0 および ADO.NET 2.0 での汎用的なデータ アクセス コードの作成」をご覧ください。
ADO.NET 2.0 以降では、DbProviderFactories のインスタンスを作成するための static
(Visual Basic の場合は Shared
) メソッドが DbProviderFactory クラスに用意されています。 このインスタンスにより、実行時に指定したプロバイダー情報と接続文字列に基づいて、厳密に型指定された適切なオブジェクトが返されます。