Правильно ли использовать switch/case в паттерне Фабричный метод / Factory Method? Всем привет.
По сути сабж.
Приведу пример:interface House
{
public function build();
public function demolition();
}
class BlueHouse implements House
{
// реализация
}
class RedHouse implements House
{
// реализация
}
class Factory
{
public function factoryMethod($color)
{
switch($color)
{
case 'Red':
return new RedHouse();

case 'Blue':
return new BlueHouse();
default :
throw new Exception('Undefined house\'s color');
}
}
}
Можно использовать Switch/Case для создания обьектов?
Пока ничего против не нашел но и не нашел что это 100% обязательно. Может кто сумеет опровергнуть?
Просьба отвечать только тем кто знаком с данным паттерном!!

21 Авг 2019 в 07:04
124 +1
0
Ответы
1

Да, использование switch/case для создания объектов в паттерне Фабричный метод является допустимым подходом. Этот подход позволяет централизованно определять логику создания объектов и управлять процессом инстанцирования, а также добавлять новые типы объектов без изменения кода самой фабрики. Однако, в случае, если количество различных типов объектов станет очень большим, можно рассмотреть другие подходы, такие как использование реестра объектов или стратегий.

Таким образом, использование switch/case в вашем примере для создания объектов BlueHouse и RedHouse вполне уместно и соответствует идее паттерна Фабричный метод.

20 Апр в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир