Pola Jembatan di Jawa

1. Ikhtisar

Definisi resmi untuk pola desain Jembatan yang diperkenalkan oleh Gang of Four (GoF) adalah untuk memisahkan abstraksi dari implementasinya sehingga keduanya dapat bervariasi secara independen.

Ini berarti membuat antarmuka jembatan yang menggunakan prinsip OOP untuk memisahkan tanggung jawab ke dalam kelas abstrak yang berbeda.

2. Contoh Pola Jembatan

Untuk pola Bridge, kita akan mempertimbangkan dua lapisan abstraksi; satu adalah bentuk geometris (seperti segitiga dan persegi) yang diisi dengan warna berbeda (lapisan abstraksi kedua kami):

Pertama, kami akan menentukan antarmuka warna:

public interface Color { String fill(); }

Sekarang kita akan membuat kelas konkret untuk antarmuka ini:

public class Blue implements Color { @Override public String fill() { return "Color is Blue"; } }

Sekarang mari buat kelas Shape abstrak yang terdiri dari referensi (jembatan) ke objek Color :

public abstract class Shape { protected Color color; //standard constructors abstract public String draw(); }

Sekarang kita akan membuat kelas konkret dari antarmuka Bentuk yang akan menggunakan metode dari antarmuka Warna juga:

public class Square extends Shape { public Square(Color color) { super(color); } @Override public String draw() { return "Square drawn. " + color.fill(); } }

Untuk pola ini, pernyataan berikut akan menjadi benar:

@Test public void whenBridgePatternInvoked_thenConfigSuccess() { //a square with red color Shape square = new Square(new Red()); assertEquals(square.draw(), "Square drawn. Color is Red"); }

Di sini, kami menggunakan pola Bridge dan meneruskan objek warna yang diinginkan. Seperti yang bisa kita catat di output, bentuknya digambar dengan warna yang diinginkan:

Square drawn. Color: Red Triangle drawn. Color: Blue

3. Kesimpulan

Pada artikel ini, kita telah melihat pola desain jembatan. Ini adalah pilihan yang baik dalam kasus berikut:

  • Ketika kita ingin kelas abstrak orang tua untuk mendefinisikan seperangkat aturan dasar, dan kelas konkret untuk menambahkan aturan tambahan
  • Saat kita memiliki kelas abstrak yang memiliki referensi ke objek, dan memiliki metode abstrak yang akan ditentukan di setiap kelas konkret

Kode sumber lengkap untuk contoh ini tersedia di GitHub.