Sobes.tech
Back to questions
Junior — Middle
99

К какой группе принадлежит паттерн 'Фабрика' в контексте проектирования программных систем?

Answer from AI

sobes.tech AI

Паттерн "Фабрика" (Factory) относится к группе порождающих (creational) паттернов проектирования. Его основная задача — создавать объекты, скрывая логику их создания и позволяя клиентскому коду работать с абстракциями, а не с конкретными классами.

Например, в PHP можно использовать фабрику для создания разных типов объектов в зависимости от параметров:

interface Logger {
    public function log(string $message);
}

class FileLogger implements Logger {
    public function log(string $message) {
        // Запись в файл
    }
}

class DatabaseLogger implements Logger {
    public function log(string $message) {
        // Запись в базу данных
    }
}

class LoggerFactory {
    public static function create(string $type): Logger {
        if ($type === 'file') {
            return new FileLogger();
        } elseif ($type === 'database') {
            return new DatabaseLogger();
        }
        throw new Exception("Unknown logger type");
    }
}

$logger = LoggerFactory::create('file');
$logger->log('Сообщение');

Таким образом, фабрика инкапсулирует создание объектов и упрощает расширяемость и поддержку кода.