Definisi pola metode pabrik
Arti dari pola metode pabrik adalah untuk mendefinisikan antarmuka pabrik untuk membuat objek produk dan menunda pekerjaan pembuatan aktual ke subkelas. Kelas inti pabrik tidak lagi bertanggung jawab atas penciptaan produk, sehingga kelas inti menjadi peran pabrik abstrak dan hanya bertanggung jawab atas antarmuka yang harus diimplementasikan oleh subkelas pabrik tertentu. Keuntungan dari abstraksi lebih lanjut adalah bahwa model metode pabrik dapat memungkinkan sistem untuk memperkenalkan produk baru tanpa memodifikasi peran pabrik tertentu.
Itu berisi peran berikut:
Diagram Pola Kelas UML
Contoh
Misalkan ada tiga isi ulang, yaitu isi ulang merah, isi ulang biru dan isi ulang hitam. Pengguna berharap menggunakan pena ballpoint untuk mengklarifikasi warna isi ulang.
Deskripsi dan penggunaan struktur pola
1. Produk Abstrak: Pencore.java
Public Abstract Class Pencore {String Color; Publik abstrak void writeWord (string s);} 2. Produk spesifik (Concreteproduct) _1: redpencore.java
Redpencore kelas publik memperluas Pencore {redpencore () {color = "red"; } public void writeWord (String s) {System.out.println ("Tuliskan kata"+warna+":"+s); }} Produk Khusus (Concreteproduct) _2: Bluepencore.java
Bluepencore kelas publik memperluas Pencore {bluepencore () {color = "blue"; } public void writeWord (String s) {System.out.println ("Tuliskan kata"+warna+":"+s); }} Produk Khusus (Concreteproduct) _3: Blackpencore.java
BlackPencore kelas publik memperluas Pencore {blackpencore () {color = "black"; } public void writeWord (String s) {System.out.println ("Tuliskan kata"+warna+":"+s); }} 3. Konstruktor: Ballpen.java
kelas public abstrak Ballpen {ballpen () {System.out.println ("Diproduksi pena ballpoint dengan"+getPencore (). Color+"Refill Core"); } Publik abstrak Pencore getPencore (); // metode pabrik} 4. CONCRETECREATOR:
Redballpen.javapublic Redballpen memperluas Ballpen {Public Pencore getPencore () {return redpencore baru (); }} Blueballpen.javapublic BlueBallPen memperluas Ballpen {Public Pencore getPencore () {return new Bluepencore (); }} Blackballpen.javapublic Blackballpen memperluas Ballpen {Public Pencore getPencore () {return new Blackpencore (); }} 5. Application.java
aplikasi kelas publik {public static void main (string args []) {Pencore Pencore; Ballpen Ballpen = new blueballpen (); Pencore = Ballpen.getPencore (); Pencore.WriteWord ("Halo, saya senang mengenal Anda"); Ballpen = Redballpen baru (); Pencore = Ballpen.getPencore (); Pencore.WriteWord ("Bagaimana kabarmu"); Ballpen = New Blackballpen (); Pencore = Ballpen.getPencore (); Pencore.WriteWord ("Senang bertemu denganmu"); }} Meringkaskan
Pola metode pabrik milik pola penciptaan kelas. Dalam mode metode pabrik, kelas orang tua pabrik bertanggung jawab untuk mendefinisikan antarmuka publik untuk membuat objek produk, sedangkan subkelas pabrik bertanggung jawab untuk menghasilkan objek produk tertentu. Tujuannya adalah untuk menunda operasi instantiasi kelas produk ke subkelas pabrik, yaitu, untuk menentukan kelas produk spesifik mana yang harus dipakai melalui subkelas pabrik.
Model metode pabrik adalah abstraksi lebih lanjut dan promosi model pabrik sederhana. Karena penggunaan polimorfisme yang berorientasi objek, pola metode pabrik mempertahankan keunggulan dari pola pabrik sederhana dan mengatasi kerugiannya. Dalam model metode pabrik, kelas pabrik inti tidak lagi bertanggung jawab atas pembuatan semua produk, tetapi lebih memberikan karya kreasi spesifik kepada subkelas. Kelas inti ini hanya bertanggung jawab untuk memberikan antarmuka yang harus diimplementasikan oleh pabrik spesifik, tetapi bukan rincian instantiasi kelas produk. Ini memungkinkan model metode pabrik untuk memungkinkan sistem memperkenalkan produk baru tanpa memodifikasi peran pabrik. Keuntungan utama dari model metode pabrik adalah bahwa ketika menambahkan kelas produk baru, ia tidak perlu memodifikasi sistem yang ada, dan merangkum detail pembuatan objek produk. Sistem ini memiliki fleksibilitas dan skalabilitas yang baik; Kerugiannya adalah bahwa ia membutuhkan penambahan pabrik baru sambil menambahkan produk baru, menghasilkan pasangan kelas sistem, yang meningkatkan kompleksitas sistem sampai batas tertentu.