古き良きado.netの方法でデータアクセス層を構築しようとしています。従来、私は単純なリポジトリパターンに従ってdalを構築していました。しかし、最近記事でこのパターンについて読んだので、今回はAbstractFactoryパターンを試してみたいと思います。
そこで、ここでは、抽象ファクトリパターンを使用してdalをコーディングしようとしています。まず、これまでに得たものについて説明しましょう。後で知りたいのは、私のアプローチがこのパターンを実装する正しい方法であるかどうか、そしてリポジトリアプローチに対する利点は何かということです。
だから私は次のクラスを書きました:
public abstract class Db
{
//this is class will contain methods like:
//public abstract IDbConnection CreateConnectionInstance();
}
public class SqlDb : Db
{
//this is class will contain methods like:
//public override IDbConnection CreateConnectionInstance()
//{
// ... return new SqlConnection();
//}
}
public class OracleDb : Db
{
}
public class MockupDb : Db
{
}
//this class generates the fitting provider but does not have a base (is this correct?)
public static class DbFactory
{
public static Db CreateInstance(DbProviderType dbProviderType)
{
Db db = null;
switch (dbProviderType)
{
case DbProviderType.Oracle:
db = new OracleDb();
break;
case DbProviderType.Sql:
db = new SqlDb();
break;
case DbProviderType.Mockup:
db = new MockupDb();
break;
default:
break;
}
return db;
}
}
つまり、私の質問は次のとおりです。1)これは抽象ファクトリパターンの正しい実装ですか?2)何がより良くできるか?3)基本クラスから継承するさまざまなリポジトリクラスに対する利点は何ですか?
たくさんの人に感謝します。
私のコードについてさらに情報が必要な場合は教えてください。しかし、現時点ではもうありません!