factory

Cuando trabajamos con clases y objetos en la programación orientada a objetos, generalmente estamos escribiendo código de 2 tipos:

  1. Código encargado de instanciar (o crear) otros objetos
  2. Código que realiza operaciones con dichos objetos

Por ejemplo, consideren que están intentando conectarse al API de un servicio de E-mail o SMS, seguramente necesitarán un KEY para crear el objeto y quizás el email <from> por defecto:

$key = Config::get('mailer.key');
$mailer = new Vendor\Api\Mailer($key, '[email protected]');

Y ahora para enviar emails harían algo como:

$mailer->send($to, $subject, $message);

Como les comentaba, las primeras 2 líneas nos sirven para crear un nuevo objeto, la tercera: para enviar un email, son 2 códigos diferentes, pero por lo general los escribimos uno debajo del otro.

¿Cuál es el problema de mezclar ambos tipos de código?

Es la pregunta que responderé durante los próximos 30 minutos, además te daré una introducción a la Inyección de dependencias por constructor y por método (como verás en Laravel 5 a partir de Enero del 2015), también explicaré de nuevo el concepto de interfaces ¿Mi intención? Hacer que seas un programador de OOP sólido.

Espero disfrutes el siguiente video:

¿Te gustó el video? Pronto estaremos compartiendo más material sobre OOP en PHP. Por favor no dejes de compartirlo o incluso colaborar y participar en nuestro proyecto.

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Sustituye implementaciones usando Stubs e Interfaces en PHP (POO) Lección siguiente Uso de métodos mágicos en PHP