Junior — Middle
¿Qué patrón de diseño es mejor aplicar al crear un objeto, considerando diferentes condiciones de implementación?
sobes.tech AI
Respuesta de la IA
Para crear un objeto con diferentes condiciones de implementación, es mejor utilizar el patrón de diseño "Fábrica" (Factory) o "Fábrica Abstracta" (Abstract Factory).
Este patrón permite encapsular la lógica de creación de objetos y seleccionar la clase concreta para crear en función de las condiciones en tiempo de ejecución.
Ejemplo de un método de fábrica simple:
interface LoggerInterface {
public function log(string $message);
}
class FileLogger implements LoggerInterface {
public function log(string $message) {
// escritura en archivo
}
}
class DatabaseLogger implements LoggerInterface {
public function log(string $message) {
// escritura en base de datos
}
}
class LoggerFactory {
public static function create(string $type): LoggerInterface {
if ($type === 'file') {
return new FileLogger();
} elseif ($type === 'db') {
return new DatabaseLogger();
}
throw new Exception('Tipo de logger desconocido');
}
}
$logger = LoggerFactory::create('file');
$logger->log('Mensaje');
De esta manera, se pueden crear objetos de forma flexible dependiendo de las condiciones.