Когда мое приложение запускается, ему нужно получить экземпляр правильного класса 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;
}
}
}