Sobes.tech
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('შეტყობინება');

ამ გზით, შესაძლებელია მოქნილი ობიექტების შექმნა პირობების მიხედვით.