Junior — Middle
Кадоме намунаи тарҳрезӣ беҳтарин аст барои истифода дар сохтани объект, бо назардошти шароити гуногуни татбиқ?
sobes.tech AI
Ҷавоб аз AI
Барои эҷоди объект бо шароити гуногуни татбиқ беҳтар аст, ки модели тарҳрезии "Фабрика" (Factory) ё "Фабрикаи Абстрактӣ" (Abstract Factory) истифода шавад.
Ин модел имкон медиҳад, ки логикаи эҷоди объектҳоро дар бар гирад ва дар асоси шароитҳо дар вақти иҷрои барномаи конкретии синфро интихоб кунад.
Масалан, роҳи оддӣ барои фабрика:
interface LoggerInterface {
public function log(string $message);
}
class FileLogger implements LoggerInterface {
public function log(string $message) {
// навиштани ба файл
}
}
class DatabaseLogger implements LoggerInterface {
public function log(string $message) {
// навиштани ба базаи додаҳо
}
}
class LoggerFactory {
public static function create(string $type): LoggerInterface {
if ($type === 'file') {
return new FileLogger();
} elseif ($type === 'db') {
return new DatabaseLogger();
}
throw new Exception('Намедонист типи логгер');
}
}
$logger = LoggerFactory::create('file');
$logger->log('Паём');
Ин тариқ, шумо метавонед объектҳоро дар асоси шароитҳо боэътимод эҷод кунед.