Siguiendo con el repaso en PHP de los patrones de diseño del software, llegamos al patrón Fachada o Facade en inglés. Es bien sencillo, consiste simplemente en poner una clase u objeto en medio, para que se encargue de simplificar el manejo en conjunto del programa.
Es decir, suele haber tareas complejas, con varios pasos, o en las que intervienen varios elementos. Entonces, para simplificar todo, se llama a la clase de fachada para simplificar la programación y mantenimiento.
Al grano, cómo programar una fachada en PHP
Es más sencillo leer el fuente y verlo. Un esquema posible sería el siguiente:
Primero el cliente que usa la fachada:
<?php
class Client
{
public function main()
{
$facade = new Facade();
$facade->doSomethingComplex();
}
}
..llama al método complejo, pero es simple su llamada. Entonces la fachada se encarga de hacer todo el conjunto de tareas de forma transparente para el cliente. Es simple para el cliente, aunque la tarea en sí misma puede ser muy compleja:
<?php
class Facade
{
public function doSomethingComplex()
{
$object1 = new Object1();
$object2 = new Object2();
$object3 = new Object3();
$object1->doSomethingLessComplex();
$object2->doSomethingLessComplex();
$object3->doSomethingLessComplex();
}
}
..y así sucesivamente, los tres objetos restantes que encapsulan partes de la tarea compleja, aplicando una división del problema complejo, en otros más sencillos:
<?php
class Object1
{
public function doSomethingLessComplex()
{
/*
* Here goes something less complex..
*/
}
}
<?php
class Object2
{
public function doSomethingLessComplex()
{
/*
* Here goes something less complex..
*/
}
}
<?php
class Object3
{
public function doSomethingLessComplex()
{
/*
* Here goes something less complex..
*/
}
}