Sobes.tech
Junior — Middle
144

Әртүрлі енгізу шарттарын ескере отырып, объектіні құру кезінде қай дизайн үлгісі ең жақсы?

Сұралған компаниялар
АО Тривио

AI-дан жауап

sobes.tech AI

Для создания объекта с разными условиями внедрения лучше всего применить шаблон проектирования «Фабрика» (Factory) или «Абстрактная фабрика» (Abstract Factory).

Этот шаблон позволяет инкапсулировать логику создания объектов и выбирать конкретный класс для создания в зависимости от условий во время выполнения.

Пример простого фабричного метода:

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

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

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

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

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

Таким образом, можно гибко создавать объекты в зависимости от условий.