Junior — Middle
Kura dizaina shablona ir vislabāk piemērota, izveidojot objektu, ņemot vērā dažādus ieviešanas apstākļus?
sobes.tech AI
Atbilde no AI
Lai izveidotu objektu ar dažādām ieviešanas nosacījumiem, ir vislabāk izmantot dizaina paraugu "Fabrika" (Factory) vai "Abstraktā Fabrika" (Abstract Factory).
Šis paraugs ļauj inkapsulēt objektu izveides loģiku un izvēlēties konkrētu klasi izveidei atkarībā no izpildes laikā radušajiem nosacījumiem.
Vienkāršas fabrika metodes piemērs:
interface LoggerInterface {
public function log(string $message);
}
class FileLogger implements LoggerInterface {
public function log(string $message) {
// ieraksts failā
}
}
class DatabaseLogger implements LoggerInterface {
public function log(string $message) {
// ieraksts datubāzē
}
}
class LoggerFactory {
public static function create(string $type): LoggerInterface {
if ($type === 'file') {
return new FileLogger();
} elseif ($type === 'db') {
return new DatabaseLogger();
}
throw new Exception('Nezināms loggera tips');
}
}
$logger = LoggerFactory::create('file');
$logger->log('Ziņa');
Šādā veidā, objektus var elastīgi veidot atkarībā no nosacījumiem.