アプリケーションの起動時に、ログインしているユーザーに基づいて正しい DAL クラス (現在は 4 つ) のインスタンスを取得する必要があります。特定のユーザーが特定のデータベースからプル ダウンしています。
これらの DAL クラスのインスタンスをインスタンス化する代わりに、単に正しい静的インスタンスを返すだけの場合、それはまだ「ファクトリー」パターンと見なされますか? すべてのユーザーが共有できるため、これらのオブジェクトを継続的に作成する必要はありません。
疑似コード:
public class RepositoryFactory
{
public static IRepository repoA = new FranksLumberRepo();
public static IRepository repoB = new LowesHardwareRepo();
public static IRepository repoC = new HackmansHardwareRepo();
public static IRepository repoD = new TomsHardwareRepo();
public IRepository createRepo(User currentUser)
{
switch(User.Store)
{
case FrankLumber:
return repoA;
case LowesHardware:
return repoB;
case Hackmans:
return repoC;
case TomsHardware:
return repoD;
default:
throw exception;
}
}
}