当我的应用程序启动时,它需要根据登录的用户获取正确 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;
}
}
}