Senin, 21 November 2016

Design Pattern - Facade

Definisi


Facade pattern menyembunyikan kerumitan dari sistem dan menyediakan sebuah interface kepada klien dengan menggunakan interface yang dapat klien akses. Tipe desain pattern ini ada berdasarkan structural pattern dimana pattern tersebut menambahkan interface ke sebuah sistem yang sudah ada untuk menyembunyikan kompleksitasnya / kerumitannya.

Pattern ini melibatkan sebuah single class yang menyediakan beberapa method yang telah disimplifikasi untuk.

Gambar



Implementasi


Step 1

Membuat sebuah interface.

Shape.java

 public interface Shape {  
   void draw();  
 }  

Step 2

Membuat concrete class yang mengimplementasikan interface yang sama.

Rectangle.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()");  
   }  
 }  

Step 3

Membuat facade class.

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();  
   }  
 }  

Step 4

Menggunakan facade untuk menggambar shape.

FacadePatternDemo.java

 public class FacadePatternDemo {  
   public static void main(String[] args) {  
    ShapeMaker shapeMaker = new ShapeMaker();  
    shapeMaker.drawCircle();  
    shapeMaker.drawRectangle();  
    shapeMaker.drawSquare();            
   }  
 }  

Output




Referensi :