Sobes.tech
Junior — Middle

Quel modèle de conception est le meilleur à appliquer lors de la création d'un objet, en tenant compte des différentes conditions d'implémentation?

sobes.tech IA

Réponse de l'IA

Pour créer un objet avec différentes conditions d'implémentation, il est préférable d'utiliser le patron de conception "Factory" (Usine) ou "Abstract Factory" (Fournisseur abstrait).

Ce patron permet d'encapsuler la logique de création d'objets et de choisir la classe concrète à créer en fonction des conditions lors de l'exécution.

Exemple d'une méthode de fabrique simple :

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

class FileLogger implements LoggerInterface {
    public function log(string $message) {
        // écriture dans un fichier
    }
}

class DatabaseLogger implements LoggerInterface {
    public function log(string $message) {
        // écriture dans la base de données
    }
}

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

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

Ainsi, il est possible de créer des objets de manière flexible en fonction des conditions.