Cita:
Iniciado por HiToGoRoShi 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