Corak Jambatan di Jawa

1. Gambaran keseluruhan

Definisi rasmi untuk corak reka bentuk Bridge yang diperkenalkan oleh Gang of Four (GoF) adalah untuk mencabut abstraksi dari pelaksanaannya sehingga keduanya dapat berubah secara bebas.

Ini bermaksud untuk membuat antara muka jambatan yang menggunakan prinsip OOP untuk memisahkan tanggungjawab ke dalam kelas abstrak yang berbeza.

2. Contoh Corak Jambatan

Untuk corak Bridge, kita akan mempertimbangkan dua lapisan penarikan; satu adalah bentuk geometri (seperti segitiga dan persegi) yang dipenuhi dengan warna yang berbeza (lapisan abstraksi kedua kami):

Pertama, kami akan menentukan antara muka warna:

public interface Color { String fill(); }

Sekarang kita akan membuat kelas konkrit untuk antara muka ini:

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

Sekarang mari kita buat kelas Bentuk abstrak yang terdiri daripada rujukan (jambatan) ke objek Warna :

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

Kami sekarang akan membuat kelas konkrit antara muka Bentuk yang akan menggunakan kaedah dari antara muka Warna juga:

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

Untuk corak ini, penegasan berikut akan berlaku:

@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 corak Bridge dan melewati objek warna yang dikehendaki. Seperti yang dapat kita perhatikan dalam output, bentuknya menarik dengan warna yang diinginkan:

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

3. Kesimpulannya

Dalam artikel ini, kami melihat corak reka bentuk jambatan. Ini adalah pilihan yang baik dalam kes berikut:

  • Apabila kita mahukan kelas abstrak ibu bapa menentukan set peraturan asas, dan kelas konkrit untuk menambahkan peraturan tambahan
  • Apabila kita mempunyai kelas abstrak yang mempunyai rujukan ke objek, dan ia mempunyai kaedah abstrak yang akan ditentukan dalam setiap kelas konkrit

Kod sumber penuh untuk contoh ini boleh didapati di GitHub.