Как понять фабричный метод? Здравствуйте, извините если мой вопрос покажется слишком глупым, дело в том что программирую уже относительно давно, в процессе чтения книги понимаю что я и так использую некоторые паттерны или нечто похожее на них, но сейчас захотел так сказать литературу некоторую почитать, чтобы переосмыслить некоторые моменты. И вот споткнулся на паттерне фабрика, с простой фабрикой я разобрался, а вот с фабрикой не совсем, слишком долго, нудно и растянуто...
Поправьте, если я не так понял, а я расскажу как это в моей голове отложилось...
1. Есть некий класс, одним из методов которого является создание экземпляра объекта, с которым будем работатьabstract class Myclass
{
public function prepare($type)
{
$newclass = $this->create_class($type);
$newclass->get();
$newclass->prepare();
return $newclass->get_result();
}
protected function create_class($type)
{
//это будет в субклассах
}
}
А дальше субклассы переопределяют момент создания объектаclass Subclass extends Myclass
{
protected function create_class($type)
{
if ($type===1) return new Class1;
if ($type===2) return new Class1;
...
}
}
Правильно я понял или что-то не совсем так?

21 Авг 2019 в 06:19
213 +1
0
Ответы
1

Да, вы в целом правильно понимаете фабричный метод. Фабричный метод представляет собой паттерн проектирования, который позволяет делегировать ответственность за создание экземпляров объектов подклассам. В вашем примере класс Myclass имеет метод prepare, который создает экземпляр объекта класса, действия с которым затем выполняются. Метод prepare вызывает абстрактный метод create_class, который должны переопределить подклассы Subclass для конкретной реализации создания объекта.

Таким образом, фабричный метод позволяет гибко определять процесс создания объектов в зависимости от требуемого типа, что упрощает расширение функциональности при добавлении новых типов объектов или изменении способа их создания.

Если у вас остались вопросы или нужно дополнительное объяснение, не стесняйтесь задать их.

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