Sobes.tech
Junior — Middle

Jaki wzorzec projektowy jest najlepszy do zastosowania przy tworzeniu obiektu, biorąc pod uwagę różne warunki wdrożenia?

sobes.tech AI

Odpowiedź od AI

Aby utworzyć obiekt z różnymi warunkami wdrożenia, najlepiej zastosować wzorzec projektowy "Fabryka" (Factory) lub "Abstrakcyjna Fabryka" (Abstract Factory).

Ten wzorzec pozwala na enkapsulację logiki tworzenia obiektów i wybór konkretnej klasy do tworzenia w zależności od warunków podczas wykonywania.

Przykład prostego metody fabrycznej:

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

class FileLogger implements LoggerInterface {
    public function log(string $message) {
        // zapis do pliku
    }
}

class DatabaseLogger implements LoggerInterface {
    public function log(string $message) {
        // zapis do bazy danych
    }
}

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

$logger = LoggerFactory::create('file');
$logger->log('Wiadomość');

W ten sposób można elastycznie tworzyć obiekty w zależności od warunków.