Junior — Middle
Ktorý návrhový vzor je najlepší na použitie pri vytváraní objektu s ohľadom na rôzne podmienky implementácie?
sobes.tech AI
Odpoveď od AI
Za ustvarjanje objekta z različnimi pogoji uvajanja je najbolje uporabiti vzorec oblikovanja "Fabrika" (Factory) ali "Abstraktna Fabrika" (Abstract Factory).
Ta vzorec omogoča inkapsulacijo logike ustvarjanja objektov in izbiro konkretnega razreda za ustvarjanje glede na pogoje med izvajanjem.
Primer preproste metode tovarne:
interface LoggerInterface {
public function log(string $message);
}
class FileLogger implements LoggerInterface {
public function log(string $message) {
// zapis v datoteko
}
}
class DatabaseLogger implements LoggerInterface {
public function log(string $message) {
// zapis v bazo podatkov
}
}
class LoggerFactory {
public static function create(string $type): LoggerInterface {
if ($type === 'file') {
return new FileLogger();
} elseif ($type === 'db') {
return new DatabaseLogger();
}
throw new Exception('Neznana vrsta loggerja');
}
}
$logger = LoggerFactory::create('file');
$logger->log('Sporočilo');
Na ta način je mogoče ustvarjati objekte prilagodljivo glede na pogoje.