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('შეტყობინება');
ამ გზით, შესაძლებელია მოქნილი ობიექტების შექმნა პირობების მიხედვით.