Sobes.tech
Junior — Middle

Koji obrazac dizajna je najbolji za primenu pri kreiranju objekta, uzimajući u obzir različite uslove implementacije?

sobes.tech АИ

Одговор од АИ

Za kreiranje objekta sa različitim uslovima implementacije, najbolje je primeniti šablon dizajna "Fabrika" (Factory) ili "Apstraktna Fabrika" (Abstract Factory).

Ovaj šablon omogućava inkapsulaciju logike kreiranja objekata i izbor konkretne klase za kreiranje u zavisnosti od uslova tokom izvršenja.

Primer jednostavne fabričke metode:

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

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

class DatabaseLogger implements LoggerInterface {
    public function log(string $message) {
        // zapis u bazu podataka
    }
}

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

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

Na ovaj način, objekti se mogu fleksibilno kreirati u zavisnosti od uslova.