Ver Mensaje Individual
  #6 (permalink)  
Antiguo 07/11/2012, 22:13
Avatar de pablofmorales
pablofmorales
 
Fecha de Ingreso: abril-2008
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 222
Antigüedad: 16 años, 1 mes
Puntos: 37
Respuesta: Patron IoC e inyeccion de dependencia

Cita:
Iniciado por HiToGoRoShi Ver Mensaje
Podrían explicarme para que sirven estos patrones y con que fin se usan .. con alguno ejemplo simple en PHP

Lo publico acá porque hay gurus en patrones de diseño

Estoy haciendo un trabajo en .NET, y nos mandaron a investigar esto pero no logro comprender bien su uso , yo se que dirán porque publicas esto acá, si lo tuyo es .NET ... pero los patrones de diseno son ambiguos no?, da igual en que lenguaje lo use
Arriba Gatarov explica que son y para que sirven. Este patron es una pata de los principio de SOLID

un ejemplo en php simple con un logger en PHP seria algo como

Código PHP:
<?php
class Logger 
{
   public function 
write($message)
  {
      
error_log($message);
  }
}

class 
Login
{
   private 
$_logger;
   public function 
setLogger($logger)
   {
      
$this->_logger $logger;
   }

   public function 
authenticate($user$password)
   {
      if (
$user == 'test' && $password == 'passwd') {
         return 
true;
      } else {
          
$this->_logger->write('User can not be found');
          return 
false;
      }
   }
}

$logger = new Logger();
$login = new Login();
$login->setLogger($logger);

$login->authenticate('Juan''Password');
Si en algun momento queremos cambiar nuestra clase logger por Monolog por ejemplo cambiamos solo cuando hacemos la inyeccion por ejemplo


Código PHP:
$logger = new Monolog();
$login = new Login();
$login->setLogger($logger);

$login->authenticate('Juan''Password'); 
Y todo funciona bien :D
__________________
blog