Latest web development tutorials

modus pabrik

pola pabrik (Factory Pattern) Java adalah salah satu pola desain yang paling umum digunakan. Jenis pola desain milik membuat skema, yang menyediakan cara terbaik untuk membuat objek.

Dalam mode Factory, kita tidak akan mengekspos klien untuk membuat logis ketika Anda membuat sebuah objek, dan melalui penggunaan antarmuka umum untuk menunjuk ke objek yang baru dibuat.

pengenalan

Maksud: Definisi antarmuka objek dibuat, mari subclass memutuskan mana kelas untuk instantiate sebuah pabrik, pola pabrik untuk membuat proses menciptakan penundaan ke sub-kelas.

Terutama untuk mengatasi: Masalah utama dari pilihan antarmuka.

Kapan menggunakan: ketika kita secara eksplisit membuat contoh yang berbeda di bawah kondisi yang berbeda rencana.

Cara untuk memperbaiki: membiarkan subclass mengimplementasikan antarmuka pabrik, merupakan produk abstrak kembali.

Kode kunci: proses pembuatan dieksekusi di subclass.

contoh aplikasi: 1, Anda membutuhkan sebuah mobil, Anda dapat mengambil dari dalam pabrik langsung, tanpa harus pipa mobil adalah bagaimana untuk melakukannya, serta pelaksanaan dalam mobil.2, Hibernate basis data exchange hanya mengubah dialek dan mengemudi dapat.

Keuntungan: 1, penelepon ingin membuat sebuah objek, hanya tahu namanya di atasnya.2, skalabilitas tinggi, jika Anda ingin menambahkan produk, selama ekspansi kelas pabrik dapat. 3, melindungi realisasi produk, penelepon hanya peduli dengan antarmuka produk.

Kekurangan: setiap peningkatan produk, kita perlu menambahkan kelas dan objek untuk mencapai sebuah pabrik beton, sehingga jumlah kelas dalam sistem meningkat secara eksponensial, sampai batas tertentu, meningkatkan kompleksitas sistem, tetapi juga meningkatkan kelas khusus sistem ketergantungan.Ini bukan hal yang baik.

Penggunaan skenario: 1, Logger: Rekaman dapat disimpan ke hard disk lokal Anda, acara sistem, remote server, pengguna dapat memilih untuk login di suatu tempat.2, akses database, ketika pengguna tidak tahu apa jenis sistem akhir menggunakan database, dan database mungkin berubah. 3, merancang sebuah kerangka untuk koneksi ke server, Anda perlu tiga perjanjian, "POP3", "IMAP", "HTTP", bisa tiga ini sebagai kategori produk, untuk mencapai interface umum.

Catatan: Sebagai kelas modus buat, di mana pun diperlukan untuk menghasilkan objek yang kompleks, Anda dapat menggunakan pola metode pabrik.Satu hal yang perlu diperhatikan adalah bahwa tempat untuk objek yang kompleks menggunakan pola pabrik, dan benda-benda sederhana, khususnya, hanya perlu diselesaikan oleh benda-benda baru yang dibuat tanpa menggunakan model pabrik. Jika Anda menggunakan pola pabrik, perlu untuk memperkenalkan kelas pabrik, itu akan meningkatkan kompleksitas sistem.

realisasi

Kami akan membuat sebuah antarmuka entitas kelas dan antarmukaShapepelaksanaanShape.Langkah berikutnya adalah untuk mendefinisikan kelas pabrikShapeFactory.

FactoryPatternDemo,demo kami untuk mendapatkan kelas untuk menggunakanShapeFactoryobjekShape.Ini akan mengirimkan informasi(LINGKARAN/ PERSEGI PANJANG / KOTAK) untukShapeFactory,perlu untuk mendapatkan jenis objek.

Pola pabrik diagram UML

Langkah 1

Buat sebuah antarmuka.

Shape.java

antarmuka publik Shape {
   kekosongan draw ();
}

Langkah 2

Membuat kelas entitas yang mengimplementasikan antarmuka.

Rectangle.java

public class Rectangle mengimplementasikan Shape {

   @ Override
   public void draw () {
      System.out.println ( "Di dalam Rectangle :: imbang () metode.");
   }
}

Square.java

public class persegi mengimplementasikan Shape {

   @ Override
   public void draw () {
      System.out.println ( "Di dalam Lapangan :: imbang () metode.");
   }
}

Circle.java

public class Lingkaran mengimplementasikan Shape {

   @ Override
   public void draw () {
      System.out.println ( "Di dalam Lingkaran :: imbang () metode.");
   }
}

Langkah 3

Buat sebuah pabrik untuk memproduksi kelas objek entitas berdasarkan informasi yang diberikan.

ShapeFactory.java

public class ShapeFactory {
	
   // Gunakan getShape metode untuk mendapatkan objek dari tipe bentuk Shape publik getShape (String shapeType) {
      jika (shapeType == null) {
         kembali null;
      }		
      jika (shapeType.equalsIgnoreCase ( "CIRCLE")) {
         kembali Lingkaran baru ();
      } Lain jika (shapeType.equalsIgnoreCase ( "PERSEGI PANJANG")) {
         kembali Rectangle baru ();
      } Lain jika (shapeType.equalsIgnoreCase ( "KOTAK")) {
         kembali persegi baru ();
      }
      kembali null;
   }
}

Langkah 4

Gunakan pabrik untuk mendapatkan obyek entitas kelas dengan melewati informasi jenis.

FactoryPatternDemo.java

public class FactoryPatternDemo {

   public static void main (String [] args) {
      ShapeFactory shapeFactory = baru ShapeFactory ();

      // Dapatkan objek Circle, dan panggilan yang metode menggambar Shape shape1 = shapeFactory.getShape ( "CIRCLE");

      // Panggil metode menarik dari shape1.draw Circle ();

      // Dapatkan objek Rectangle, dan memanggil shape2 metode menggambar Shape-nya = shapeFactory.getShape ( "PERSEGI PANJANG");

      // Panggil metode menarik dari shape2.draw Rectangle ();

      // Dapatkan objek Square, dan panggilan yang metode menggambar Shape shape3 = shapeFactory.getShape ( "KOTAK");

      // Panggil metode imbang Lapangan shape3.draw ();
   }
}

Langkah 5

Verifikasi output.

Di dalam Lingkaran :: imbang () metode.
Di dalam Rectangle :: imbang () metode.
Di dalam persegi :: imbang () metode.