私は、データアクセス層を良い古いado.netの方法で構築しようとしています。伝統的に私は簡単なリポジトリパターンに従ってdalを構築していました。しかし、今回は、このパターンを最近記事で読んだので、Abstract Factoryパターンを試してみたいと思います。抽象ファクトリパターンを実装する際の正しいアプローチは?
ここでは、抽象ファクトリパターンで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)これは、Abstract Factoryパターンの正しい実装ですか? 2)もっとうまくいくことができますか? 3)ベースクラスから継承する異なるリポジトリクラスに対する利点は何ですか?
Thx多くの人。
私のコードの詳細については、私に教えてください。しかし、この時点ではもう存在しません!