Junior — Middle
Kuris dizaino šablonas yra geriausias taikyti kuriant objektą, atsižvelgiant į skirtingas įgyvendinimo sąlygas?
sobes.tech AI
Atsakymas iš AI
Kuriant objektą su skirtingomis įdiegimo sąlygomis, geriausia naudoti projektavimo šabloną "Fabrika" (Factory) arba "Abstraktią fabriką" (Abstract Factory).
Šis šablonas leidžia įdiegti objektų kūrimo logiką ir pasirinkti konkretų klasės kūrimo būdą pagal vykdymo metu sąlygas.
Pavyzdys paprasto fabrikinio metodo:
interface LoggerInterface {
public function log(string $message);
}
class FileLogger implements LoggerInterface {
public function log(string $message) {
// įrašymas į failą
}
}
class DatabaseLogger implements LoggerInterface {
public function log(string $message) {
// įrašymas į duomenų bazę
}
}
class LoggerFactory {
public static function create(string $type): LoggerInterface {
if ($type === 'file') {
return new FileLogger();
} elseif ($type === 'db') {
return new DatabaseLogger();
}
throw new Exception('Nežinomas loggerio tipas');
}
}
$logger = LoggerFactory::create('file');
$logger->log('Žinutė');
Šiuo būdu, galima lankstiai kurti objektus priklausomai nuo sąlygų.