Facade pattern adalah design pattern yang menyembunyikan kompleksitas sistem dan menyediakan antarmuka yang telah disederhanakan kepada klient untuk mengakses sistem. Pattern ini melibatkan satu kelas yang menyediakan function yang digunakan user untuk mengakses function system. Facade pattern termasuk Structural Pattern.
Facade pattern memisahkan layer-layer yang terlibat sehingga layer-layer tersebut tidak bergantung satu sama lain. Hal itu menjadikan masing-masing layer dapat dengan mudah untuk dikembangkan.
Contoh Implementasi
Disini, kita memiliki tiga kelas layer yaitu kelas Lingkaran, Segitiga dan Persegi.Interface Shape sebagai penyedia function bagi kelas-kelas layer. Kelas ShapeMaker berfungsi sebagai kelas yang mengatur hubungan antara kelas user dengan kelas layer. Kelas Test digunakan user untuk memilih kelas layer yang mana yang akan digunakan.
Note : Bagi pengguna mobile, mohon aktifkan JavaScript dan matikan fitur Google Web Light untuk melihat kode berikut secara keseluruhan.
1. Buat Interface Shape.java
package main; public interface Shape { public void draw(); }
2. Buat layer class Lingkaran.java
package main; public class Lingkaran implements Shape { @Override public void draw() { System.out.println("Lingkaran :: draw()"); } }
3. Buat layer class Persegi.java
package main; public class Persegi implements Shape { @Override public void draw() { System.out.println("Persegi :: draw()"); } }
4. Buat layer class Segitiga.java
package main; public class Segitiga implements Shape{ @Override public void draw() { System.out.println("Segitiga :: draw()"); } }
5. Buat class ShapeMaker.java
package main; public class ShapeMaker { private Shape lingkaran; private Shape segitiga; private Shape persegi; public ShapeMaker(){ lingkaran = new Lingkaran(); segitiga = new Segitiga(); persegi = new Persegi(); } public void drawLingkaran(){ lingkaran.draw(); } public void drawSegitiga(){ segitiga.draw(); } public void drawPersegi(){ persegi.draw(); } }
6. Buat class Test.java
package main; public class Test { public static void main (String[] args){ ShapeMaker sm = new ShapeMaker(); sm.drawLingkaran(); sm.drawPersegi(); sm.drawSegitiga(); } }
7. Verifikasi Output
Lingkaran :: draw() Persegi :: draw() Segitiga :: draw()
Baca Juga :
Java Flyweight Pattern
Entri Sebelumnya :
Java Decorator Pattern
No comments:
Post a Comment