El patrón de diseño de fachada oculta la complejidad de una tarea y proporciona una interfaz simple. La puesta en marcha de una computadora es un buen ejemplo. Cuando una computadora se inicia, implica el trabajo de la CPU, la memoria, el disco duro, etc. Para que sea fácil de usar para los usuarios, podemos agregar una fachada que envuelva la complejidad de la tarea y, en su lugar, proporcione una interfaz simple.
1. Diagrama de clases de patrón de fachada
2. Ejemplo de patrón de fachada de Java
//the components of a computer class CPU { public void processData() { } } class Memory { public void load() { } } class HardDrive { public void readdata() { } } /* Facade */ class Computer { private CPU cpu; private Memory memory; private HardDrive hardDrive; public Computer() { this.cpu = new CPU(); this.memory = new Memory(); this.hardDrive = new HardDrive(); } public void run() { cpu.processData(); memory.load(); hardDrive.readdata(); } } class User { public static void main(String[] args) { Computer computer = new Computer(); computer.run(); } } |
3. Ejemplo en proyecto real
En javax.faces.context, ExternalContext utiliza internamente ServletContext, HttpSession, HttpServletRequest, HttpServletResponse, etc. Permite que la API de Faces no sea consciente de la naturaleza del entorno de aplicación que lo contiene.
Este ejemplo se basa en el patrón de diseño de fachadas en Wiki, por lo que el crédito se le da a Wiki.
Referencia:
1. ExternalContext
2. Fachada Wiki