Как понять фабричный метод? Здравствуйте, извините если мой вопрос покажется слишком глупым, дело в том что программирую уже относительно давно, в процессе чтения книги понимаю что я и так использую некоторые паттерны или нечто похожее на них, но сейчас захотел так сказать литературу некоторую почитать, чтобы переосмыслить некоторые моменты. И вот споткнулся на паттерне фабрика, с простой фабрикой я разобрался, а вот с фабрикой не совсем, слишком долго, нудно и растянуто...
Поправьте, если я не так понял, а я расскажу как это в моей голове отложилось...
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
330 +2
0
Ответы
1

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

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

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

20 Апр 2024 в 13:20
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир