Sobes.tech
Junior — Middle

Бағдарламалық жүйелерді жобалау контекстінде 'Фабрика' паттерні қай топқа жатады?

sobes.tech AI

AI-дан жауап

"Фабрика" паттерні — бұл құрушы (creational) жобалау паттерндерінің тобына жатады. Оның негізгі міндеті — объектілерді құруды жасырып, клиенттік кодқа нақты кластармен емес, абстракциялармен жұмыс істеуге мүмкіндік беру.

Мысалы, PHP-те параметрлерге байланысты әртүрлі типтегі объектілерді құру үшін фабриканы қолдануға болады:

interface Logger {
    public function log(string $message);
}

class FileLogger implements Logger {
    public function log(string $message) {
        // Файлға жазу
    }
}

class DatabaseLogger implements Logger {
    public function log(string $message) {
        // Мәліметтер қорына жазу
    }
}

class LoggerFactory {
    public static function create(string $type): Logger {
        if ($type === 'file') {
            return new FileLogger();
        } elseif ($type === 'database') {
            return new DatabaseLogger();
        }
        throw new Exception("Белгісіз логгер түрі");
    }
}

$logger = LoggerFactory::create('file');
$logger->log('Хабарлама');

Осылайша, фабрика объектілерді құруды инкапсуляциялайды және кодтың кеңейтілімділігі мен қолдауды жеңілдетеді.