ФАБРИЧНЫЙ МЕТОД PHP
Фабричный метод (Factory Method) - это шаблон проектирования, который позволяет делегировать процесс создания объектов подклассам, необходимые объекты создаются путем вызова фабричного метода в родительском классе.
Пример кода на PHP:
interface Logger {
public function log(string $message);
}
class FileLogger implements Logger {
public function log(string $message) {
echo 'Log message to file: ' . $message;
}
}
class StdoutLogger implements Logger {
public function log(string $message) {
echo 'Log message to stdout: ' . $message;
}
}
abstract class LoggerFactory {
abstract public function createLogger(): Logger;
}
class FileLoggerFactory extends LoggerFactory {
public function createLogger(): Logger {
return new FileLogger();
}
}
class StdoutLoggerFactory extends LoggerFactory {
public function createLogger(): Logger {
return new StdoutLogger();
}
}
$fileLoggerFactory = new FileLoggerFactory();
$fileLogger = $fileLoggerFactory->createLogger();
$fileLogger->log('Log message to file');
$stdoutLoggerFactory = new StdoutLoggerFactory();
$stdoutLogger = $stdoutLoggerFactory->createLogger();
$stdoutLogger->log('Log message to stdout');
В данном коде мы имеем интерфейс Logger и два класса, которые его реализуют: FileLogger и StdoutLogger. Также мы имеем абстрактный класс LoggerFactory и два класса, которые его расширяют: FileLoggerFactory и StdoutLoggerFactory. Создание объектов осуществляется путем вызова метода createLogger() в соответствующей фабрике.
Разбор вопроса с собеседования: Что такое \
35 - Уроки PHP. Шаблон проектирования Factory
Фабричный метод ► Шаблон проектирования ► Урок №6
Паттерн Фабричный Метод
Фабричный метод
Factory Pattern - Object Oriented PHP Tutorial
Паттерн Фабрика на реальном примере в PHP
Factory Method(Фабричный метод) - Паттерны проектирования PHP
PHP Паттерн Фабрика на простом примере за 8 минут.