Sobes.tech
Junior — Middle

Welke ontwerppatroon is het beste toe te passen bij het maken van een object, rekening houdend met verschillende implementatievoorwaarden?

sobes.tech AI

Antwoord van AI

Om een object te maken met verschillende implementatievoorwaarden, is het het beste om het ontwerp patroon "Fabriek" (Factory) of "Abstracte Fabriek" (Abstract Factory) toe te passen.

Dit patroon maakt het mogelijk om de logica van het creëren van objecten te encapsuleren en een specifieke klasse te kiezen op basis van de voorwaarden tijdens de uitvoering.

Voorbeeld van een eenvoudige fabrieksmethode:

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

class FileLogger implements LoggerInterface {
    public function log(string $message) {
        // schrijven naar bestand
    }
}

class DatabaseLogger implements LoggerInterface {
    public function log(string $message) {
        // schrijven naar database
    }
}

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

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

Op deze manier kunnen objecten flexibel worden gemaakt afhankelijk van de voorwaarden.