Junior — Middle
Který návrhový vzor je nejlepší použít při vytváření objektu s ohledem na různé podmínky implementace?
sobes.tech AI
Odpověď od AI
Pro vytvoření objektu s různými podmínkami implementace je nejlepší použít návrhový vzor "Továrna" (Factory) nebo "Abstraktní továrna" (Abstract Factory).
Tento vzor umožňuje zakrýt logiku vytváření objektů a vybírat konkrétní třídu pro vytvoření na základě podmínek za běhu.
Příklad jednoduché továrenské metody:
interface LoggerInterface {
public function log(string $message);
}
class FileLogger implements LoggerInterface {
public function log(string $message) {
// zápis do souboru
}
}
class DatabaseLogger implements LoggerInterface {
public function log(string $message) {
// zápis do databáze
}
}
class LoggerFactory {
public static function create(string $type): LoggerInterface {
if ($type === 'file') {
return new FileLogger();
} elseif ($type === 'db') {
return new DatabaseLogger();
}
throw new Exception('Neznámý typ loggeru');
}
}
$logger = LoggerFactory::create('file');
$logger->log('Zpráva');
Tímto způsobem lze vytvářet objekty flexibilně v závislosti na podmínkách.