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 :