Sobes.tech
Junior — Middle

Welches Entwurfsmuster ist am besten geeignet, um ein Objekt zu erstellen, unter Berücksichtigung verschiedener Implementierungsbedingungen?

sobes.tech KI

Antwort von AI

Um ein Objekt mit unterschiedlichen Implementierungsbedingungen zu erstellen, ist es am besten, das Entwurfsmuster "Fabrik" (Factory) oder "Abstrakte Fabrik" (Abstract Factory) anzuwenden.

Dieses Muster ermöglicht es, die Logik der Objekterstellung zu kapseln und die konkrete Klasse zur Erstellung basierend auf den Laufzeitbedingungen auszuwählen.

Beispiel für eine einfache Fabrikmethode:

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

class FileLogger implements LoggerInterface {
    public function log(string $message) {
        // in Datei schreiben
    }
}

class DatabaseLogger implements LoggerInterface {
    public function log(string $message) {
        // in Datenbank schreiben
    }
}

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

$logger = LoggerFactory::create('file');
$logger->log('Nachricht');

Auf diese Weise können Objekte flexibel je nach Bedingungen erstellt werden.