Mode Pabrik Sederhana
Diagram kelas
Buat objek yang sesuai dengan suatu kondisi melalui kelas pabrik
// fungsi bisnis antarmuka publik icalculation {getResult double (double numa, double numb); } kelas publik CalcAdd mengimplementasikan icalCulation {@Override public double getResult (double numa, double numb) {system.out.println ("add"); return numa + numb; }} kelas public CalcSubtract mengimplementasikan icalCulation {@Override public double getResult (double numa, double numb) {System.out.println ("pengurangan"); return numa - numb; }}/** Mode pabrik sederhana berfokus pada: Pembuatan Objek* Buat kelas pabrik untuk membuat instance beberapa kelas yang menerapkan antarmuka yang sama atau memiliki hubungan warisan*/kelas publik test4sicle {public static void main (string [] args) {// string operasi = "/"; Operasi string = "+"; // operasi string = "-"; // operasi string = "*"; double numa = 182, numb = 33; Icalculation createCalc = calcSimpleFactory.createCalc (operasi); hasil ganda = createCalc.getResult (numa, numb); System.out.println (hasil); }} Cacat pabrik sederhana: ketika pabrik sederhana membuat produk, perlu untuk melewati parameter yang sesuai. Jika pass tidak benar, objek tidak dapat diambil.
Peningkatan: Buat kategori produk yang berbeda dalam berbagai cara
Public Class CalcMultipleFactory {public static icalculation produceAdd () {return new calcadd (); } public static icalCulation menghasilkanubtract () {return new calcsubtract (); } public static icalculation produceMultiply () {return new calcMultiply (); } public static ical producedivide () {return new calcDivide (); }} public class test4multiple {public static void main (string [] args) {double numa = 182, numb = 33; Icalculation createCalc = calcmultipleFactory.produceadd (); hasil ganda = createCalc.getResult (numa, numb); System.out.println (hasil); createCalc = calcmultipleFactory.producesubtract (); hasil = createCalc.getResult (numa, numb); System.out.println (hasil); createCalc = calcmultipleFactory.producesubtract (); hasil = createCalc.getResult (numa, numb); System.out.println (hasil); createCalc = calcmultipleFactory.producemultiply (); hasil = createCalc.getResult (numa, numb); System.out.println (hasil); createCalc = calcmultipleFactory.producedivide (); hasil = createCalc.getResult (numa, numb); System.out.println (hasil); }} Pola pabrik abstrak
Ada beberapa konsep di dalamnya: Abstrak Pabrik, Pabrik Fisik, Produk Abstrak, Produk Fisik Abstrak Pabrik: Tentukan metode abstrak dalam membuat produk. Pabrik Entitas: Produk Spesifik Abstrak Pembuatan Produk: Antarmuka atau Produk Entitas Kelas Dasar: Menerapkan fungsi spesifik, atau diagram kelas turunan
// abstrak produk1 antarmuka publik iproduct1 {public void show (); } // abstrak produk2 antarmuka publik iproduct2 {public void show (); } // Entity Product1 Public Class Product1 mengimplementasikan iProduct1 {public void show () {System.out.println ("Produk Tipe 1 yang dibuat"); }} // Entity Product2 Public Class Product2 mengimplementasikan iProduct2 {public void show () {System.out.println ("Produk Tipe 2 Dibuat"); }} / * * 1a 1b milik produk1 dalam struktur hierarki produk yang sama * 2a 2b milik produk2 * / kelas publik gradeproduct1a memperluas produk1 {@override public void show () {super.show (); System.out.println ("Ini di bawah Produk 1: Produk A"); }} kelas publik gradeproduct1b memperluas produk1 {@Override public void show () {super.show (); System.out.println ("Ini di bawah Produk 1: Produk B"); }} kelas publik gradeproduct1b memperluas produk1 {@Override public void show () {super.show (); System.out.println ("Ini di bawah Produk 1: Produk B"); }} kelas publik gradeproduct2a memperluas produk2 {@Override public void show () {super.show (); System.out.println ("Ini di bawah Produk 2: Produk A"); }} kelas publik gradeproduct2b memperluas produk2 {@Override public void show () {super.show (); System.out.println ("Ini di bawah Produk 2: Produk B"); }} // Abstrak Pabrik Membuat Produk Abstrak yang Berbeda Antarmuka Publik Ifactory {Public iProduct1 CreateProduct1a (); // Model Produk Kelas // Pabrik Produk Kelas 1 Membuat Produk Fisik, Jenis Pengembalian adalah Abstrak Produk Public Class Pabrik Menerapkan Ifactory {public iProduct1 createProduct1a () {return new gradeproduct1a (); } public iProduct1 createProduct1b () {return new gradeproduct1b (); } public iProduct2 createProduct2a () {return new gradeproduct2a (); } public iProduct2 createProduct2b () {return new gradeproduct2b (); }} /** Pola pabrik abstrak: digunakan untuk membuat serangkaian objek terkait atau interdependen** Proses: Abstrak pabrik, pabrik fisik menghasilkan produk* Produk abstrak, produk fisik mewujudkan fungsi produk* Kerugian: ketika Anda perlu menambahkan produk (komplot public {public {public factory {public {public {public {public {public { Pabrik(); IProduct1 Product1a = factory.createProduct1a (); Product1a.show (); IProduct1 Product1b = factory.createProduct1b (); Product1b.show (); IProduct2 Product2a = factory.createProduct2a (); Product2a.show (); IProduct2 Product2b = factory.createProduct2b (); Product2b.show (); }}