Artikel ini menjelaskan metode implementasi model pabrik dari pola desain java. Bagikan untuk referensi Anda, sebagai berikut:
Model pabrik terutama menyediakan antarmuka transisi untuk membuat objek, untuk melindungi dan mengisolasi proses spesifik membuat objek, sehingga dapat mencapai tujuan meningkatkan fleksibilitas.
Model pabrik dibagi menjadi tiga kategori:
1) Model Pabrik Sederhana: Tidak kondusif untuk generasi serangkaian produk;
2) Metode Pabrik: Juga dikenal sebagai pabrik polimorfik;
3) Model Pabrik Abstrak: Juga dikenal sebagai Toolbox, ia menghasilkan keluarga produk, tetapi tidak kondusif untuk generasi produk baru;
1. Model pabrik sederhana
Mode pabrik sederhana juga dikenal sebagai mode metode pabrik statis. Dengan mengganti nama, Anda dapat melihat bahwa pola ini harus sangat sederhana. Tujuannya sederhana: Tentukan antarmuka untuk membuat objek.
Dalam model pabrik sederhana, kelas pabrik berada di pusat panggilan instantiasi ke kelas produk, yang menentukan kelas produk mana yang harus dipakai, seperti halnya polisi lalu lintas berdiri dalam aliran kendaraan dan memutuskan untuk melepaskan kendaraan ke arah mana yang mengalir. Mari kita lihat komposisinya:
1) Peran pabrik: Ini adalah inti dari model ini, yang berisi logika bisnis dan logika penilaian tertentu. Di Java sering diimplementasikan oleh kelas konkret.
2) Peran Produk Abstrak: Umumnya kelas induk yang diwarisi oleh produk tertentu atau antarmuka yang diimplementasikan. Diimplementasikan oleh antarmuka atau kelas abstrak di Java.
3) Peran Produk Khusus: Objek yang dibuat oleh kelas pabrik adalah contoh dari peran ini. Diimplementasikan oleh kelas konkret di Java.
2. Model Metode Pabrik
Model metode pabrik adalah abstraksi lebih lanjut dan promosi model pabrik sederhana. Dalam model metode pabrik, tidak lagi ditentukan oleh hanya satu kelas pabrik yang harus dipakai kelas produk. Keputusan ini diserahkan kepada subclass dari pabrik abstrak untuk dibuat. Mari kita lihat komposisinya:
1) Abstrak Peran Pabrik: Ini adalah inti dari pola metode pabrik, tidak ada hubungannya dengan aplikasi. Ini adalah antarmuka yang harus diterapkan oleh peran pabrik tertentu atau kelas induk yang harus diwariskan. Di Java diimplementasikan oleh kelas abstrak atau antarmuka.
2) Peran pabrik spesifik: berisi kode yang terkait dengan logika bisnis tertentu. Dipanggil oleh aplikasi untuk membuat objek produk spesifik yang sesuai.
3) Peran Produk Abstrak: Ini adalah kelas induk yang diwarisi oleh produk tertentu atau antarmuka yang diimplementasikan. Di Java, umumnya ada kelas atau antarmuka abstrak untuk mengimplementasikannya.
4) Peran Produk Khusus: Objek yang dibuat oleh peran pabrik tertentu adalah contoh dari peran ini. Diimplementasikan oleh kelas konkret di Java.
Pola metode pabrik menggunakan beberapa subclass yang diwarisi dari peran abstrak pabrik untuk menggantikan "kelas Tuhan" dalam pola pabrik sederhana. Seperti disebutkan di atas, ini akan berbagi tekanan pada objek; Dan ini akan membuat struktur fleksibel - ketika produk baru (mis., Mobil Nouveau Riche) dihasilkan, selama dihasilkan sesuai dengan kontrak yang disediakan oleh peran produk abstrak dan peran pabrik abstrak, dapat digunakan oleh pelanggan tanpa harus memodifikasi kode yang ada. Dapat dilihat bahwa struktur peran pabrik juga sesuai dengan prinsip pembukaan dan penutupan!
Kodenya adalah sebagai berikut:
// Abstrak Peran Produk Antarmuka Publik Bergerak {void run ();} // Peran produk tertentu Plan Plan Plan Plane Implement {@Override public void run () {System.out.println ("Plane ...."); }} kelas public Broom mengimplementasikan movable {@Override public void run () {System.out.println ("Broom ......"); }} // Abstrak Pabrik Abstrak Public Abstrak Kendaraan Kendaraan {Abstrak Movable Create ();} // Pabrik Public Public PlaneFactory memperluas kendaraanfactory {public movable create () {return new Plane (); }} kelas publik BroomFactory memperluas kendaraanfactory {public movable create () {return new new broom (); }} // tes kelas kelas publik tes {public static void main (string [] args) {vehicleFactory factory = new BroomFactory (); Movable m = factory.create (); m.run (); }}3. Pola pabrik abstrak
Kodenya adalah sebagai berikut
// Abstrak Kelas Pabrik Abstrak Publik Abstrak Factory {Publik Abstrak Kendaraan Kendaraan (); Public Abstract Weapon CreateDeapon (); Publik Abstrak Makanan CreateFood ();} // Kelas Pabrik Beton, Di mana Makanan, Kendaraan, Senjata adalah Kelas Abstrak, Kelas Publik DefaultFactory Memperluas AbstractFactory {@Override Public Food CreateFood () {return new Apple (); } @Override Public Vehicle CreateDevehicle () {return new mobil (); } @Override Public Weapon CreateDeapon () {return new AK47 (); }} // tes kelas kelas publik tes {public static void main (string [] args) {abstractFactory f = new DefaultFactory (); Kendaraan v = f.createVehicle (); v.run (); Senjata w = f.createWeapon (); w.shoot (); Makanan a = f.createFood (); A.printname (); }}Dalam pola pabrik abstrak, produk abstrak mungkin satu atau lebih, sehingga membentuk satu atau lebih keluarga produk. Dalam kasus hanya satu keluarga produk, pola pabrik abstrak sebenarnya merosot ke pola metode pabrik.
Meringkaskan:
(1) Pola pabrik yang sederhana adalah membuat contoh kelas lain dengan kelas tertentu. Kelas induknya sama dan kelas induk spesifik.
(2) Pola metode pabrik adalah bahwa ada kelas induk abstrak yang mendefinisikan antarmuka publik, dan subkelas bertanggung jawab untuk menghasilkan objek konkret. Tujuan dari ini adalah untuk menunda instantiasi kelas ke subkelas.
(3) Pola pabrik abstrak menyediakan antarmuka untuk membuat serangkaian objek terkait atau saling bergantung tanpa menentukan kelas spesifik mereka. Ini menargetkan struktur hierarkis dengan banyak produk. Model metode pabrik ditujukan untuk struktur hierarki suatu produk.
Untuk konten yang lebih terkait dengan Java, pembaca yang tertarik dengan situs ini dapat melihat topik: "Tutorial Struktur Data Java dan Algoritma", "Ringkasan Java Operation Dom Node Tips", "Ringkasan Tips Operasi Java File dan Direktori" dan "Ringkasan Java Cache Tips"
Saya harap artikel ini akan membantu pemrograman Java semua orang.