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('Հաղորդագրություն');

Այս կերպ, կարող եք ճկունորեն ստեղծել օբյեկտներ պայմանների հիման վրա։