jueves, 15 de marzo de 2012

Interfaces Fluidas o Fluent Interfaces

Interfaces fluiadas en Zend Framework


Zend Framework utiliza un estilo especial para la ejecución de varios métodos de forma encadenada esto realmente se conoce como "Fluent Interfaces" o interfaces fluidas, su nombre esta asociado a Martin Fowler y fundamentalmente se pretende hacer más legible el código.


Cada método setter debe tener return $this de esta forma devolverá una referencia del objeto del cual fue llamado. 


Ejemplo
http://www.techchorus.net/making-code-more-readable-using-fluent-interface 
class Customer{
    protected 
$_name;
    protected 
$_street;
    protected 
$_city;
    protected 
$_country;

    public function 
setName($name)
    {
        
$this->_name $name;
        return 
$this;
    }

    public function 
setStreetAddress($street)
    {
        
$this->_street $street;
        return 
$this;
    }

    public function 
setCity($city)
    {
        
$this->_city $city;
        return 
$this;
    }

    public function 
setCountry($country)
    {
        
$this->_country $country;
        return 
$this;
    }

    public function 
save()
    {
      
// Save the information to a database
        
echo "Customer information saved";
    }
}
?> 


Se ejecutaría de la siguiente forma


$customer = new Customer;
$customer->setName('James Bond')
         ->
setStreetAddress('Abc street')
         ->
setCity('London')
         ->
setCountry('England')
         ->
save();?>


No hay comentarios:

Publicar un comentario

Gracias por sus comentarios!