Staffオブジェクトをさまざまな方法で取得するStaffFactoryがありますが、使用するデータソースを決定するための設定メソッドもあります。ファクトリクラスを管理するための基本クラス
class StaffFactory
{
private const string DefaultDbSourceName = "Production";
private string dbSourceName;
#region Factory Management
private static Dictionary<string, StaffFactory> staffFactories = new Dictionary<string,StaffFactory>();
public static StaffFactory GetInstance()
{
return GetInstance(DefaultDbSourceName);
}
public static StaffFactory GetInstance(string dbSourceName)
{
if (!staffFactories.ContainsKey(dbSourceName))
{
staffFactories.Add(dbSourceName, new StaffFactory(dbSourceName));
}
return staffFactories[dbSourceName];
}
private StaffFactory(string dbSourceName)
{
this.dbSourceName = dbSourceName;
}
#endregion Factory Management
#region Factory Methods
public Staff ById(int id) { ... }
public IList<Staff> ByName(string name) { ... }
...
#endregion Factory Methods
}
私は私の次のファクトリを作成するために行くように、私はこのすべて管理ロジックに関係なくのためである工場を入力するものと同じままになるだろう実現。だから私は、その論理を収めている基本的なFactoryまたはFactoryクラスを作成してから、上記の宣言をclass StaffFactory : Factory<Staff> { ... }
または何かで宣言していると思っていますが、私はそれについてどのようにすればよいかについて完全な空白を描いています。ジェネリックなどを使って実装するかどうか。
誰かが正しい方向に向いていますか?
Factory、Singelton、Repositoryを実装しようとしていますか? –