У меня есть один суперкласс LoginUser и два подкласса AdminUser и StudentUser, которые расширяют LoginUser.Уточнение относительно метода Factory Patern
Раньше у меня было два метода getAdminUser и getStudentUser в классе, и я использовал для создания объекта AdminUser или StudentUser после извлечения их соответствующей роли из базы данных и возврата одного и того же объекта.
В последнее время я пытался реализации шаблон Фабричный метод:
Ниже мой новый код.
public LoginUser getUser(String emailId)
{
SQLCmd cmd = new GetUserIDByEmail(emailId);
cmd.execute();
Integer userId = (Integer)cmd.getResult().get(0);
String userType = cmd.getResult().get(1).toString().toLowerCase();
GetUserDetailsCmd gudCMD = null;
switch(userType)
{
case "student":
{
gudCMD = new GetStudentById(userId);
gudCMD.execute();
break;
}
case "admin":
{
gudCMD = new GetAdminById(userId);
gudCMD.execute();
break;
}
}
return (LoginUser)gudCMD.getResult().get(0);
}
Когда я называю gudCMD.execute(), GetAdminById создаст объект AdminUser и поместить его в список. аналогично для getStudentById; поэтому я набираю текст и возвращаю его.
Просьба уточнить, является ли это правильной реализацией шаблона Factory method.