Sobes.tech
Junior — Middle

A que grupo pertence o padrão 'Fábrica' no contexto do design de sistemas de software?

sobes.tech IA

Resposta da IA

O padrão "Fábrica" (Factory) pertence ao grupo de padrões de design criacionais. A sua principal tarefa é criar objetos, ocultando a lógica de sua criação e permitindo que o código cliente trabalhe com abstrações, em vez de com classes concretas.

Por exemplo, em PHP, pode-se usar uma fábrica para criar diferentes tipos de objetos dependendo dos parâmetros:

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

class FileLogger implements Logger {
    public function log(string $message) {
        // Escrita em ficheiro
    }
}

class DatabaseLogger implements Logger {
    public function log(string $message) {
        // Escrita na base de dados
    }
}

class LoggerFactory {
    public static function create(string $type): Logger {
        if ($type === 'file') {
            return new FileLogger();
        } elseif ($type === 'database') {
            return new DatabaseLogger();
        }
        throw new Exception("Tipo de logger desconhecido");
    }
}

$logger = LoggerFactory::create('file');
$logger->log('Mensagem');

Assim, a fábrica encapsula a criação de objetos e simplifica a expansão e manutenção do código.