in

Patrones de diseño: patrón de fachada

facade pattern uml diagram

El patrón de fachada oculta las complejidades del sistema y proporciona una interfaz al cliente mediante la cual el cliente puede acceder al sistema. Este tipo de patrón de diseño viene bajo patrón estructural ya que este patrón agrega una interfaz al sistema existente para ocultar sus complejidades.

Este patrón involucra una sola clase que proporciona métodos simplificados requeridos por el cliente y delega llamadas a métodos de clases de sistema existentes.

Implementación

Vamos a crear un Forma interfaz y clases concretas que implementan el Forma interfaz. Una clase de fachada ShapeMaker se define como el siguiente paso.

ShapeMaker class usa las clases concretas para delegar las llamadas de los usuarios a estas clases. FachadaPatrónDemo, nuestra clase de demostración, usará ShapeMaker clase para mostrar los resultados.

Diagrama UML de patrón de fachada

Paso 1

Crea una interfaz.

Shape.java

public interface Shape {
   void draw();
}

Paso 2

Crea clases concretas implementando la misma interfaz.

Rectángulo.java

public class Rectangle implements Shape {

   @Override
   public void draw() {
      System.out.println("Rectangle::draw()");
   }
}

Square.java

public class Square implements Shape {

   @Override
   public void draw() {
      System.out.println("Square::draw()");
   }
}

Circle.java

public class Circle implements Shape {

   @Override
   public void draw() {
      System.out.println("Circle::draw()");
   }
}

Paso 3

Crea una clase de fachada.

ShapeMaker.java

public class ShapeMaker {
   private Shape circle;
   private Shape rectangle;
   private Shape square;

   public ShapeMaker() {
      circle = new Circle();
      rectangle = new Rectangle();
      square = new Square();
   }

   public void drawCircle(){
      circle.draw();
   }
   public void drawRectangle(){
      rectangle.draw();
   }
   public void drawSquare(){
      square.draw();
   }
}

Paso 4

Usa la fachada para dibujar varios tipos de formas.

FacadePatternDemo.java

public class FacadePatternDemo {
   public static void main(String[] args) {
      ShapeMaker shapeMaker = new ShapeMaker();

      shapeMaker.drawCircle();
      shapeMaker.drawRectangle();
      shapeMaker.drawSquare();		
   }
}

Paso 5

Verifique la salida.

Circle::draw()
Rectangle::draw()
Square::draw()

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

spydish configuracion privacidad

Conoce Spydish, una herramienta para controlar la privacidad en Windows

apple touch icon@2

¿Cuál es el significado exacto de instanciar en JAVA?