Rumah  >  Artikel  >  Java  >  Bagaimana untuk melaksanakan corak kaedah kilang menggunakan kod Java

Bagaimana untuk melaksanakan corak kaedah kilang menggunakan kod Java

WBOY
WBOYke hadapan
2023-05-16 17:46:15874semak imbas

1. Pengenalan kepada corak kaedah kilang

Definisi: Corak kaedah kilang adalah abstraksi lanjut daripada corak kilang yang mudah ialah ia membolehkan sistem memperkenalkan produk baharu tanpa mengubah kod asal , yang memenuhi keperluan prinsip penutupan. Cipta antara muka untuk instantiasi objek dan biarkan subkelas menentukan kelas mana yang instantiation, dengan itu menangguhkan proses instantiation kelas kepada subclass.

2. Gambar rajah kelas corak kaedah kilang UML

Bagaimana untuk melaksanakan corak kaedah kilang menggunakan kod Java

3 produk, yang melaluinya pemanggil mengakses kaedah kilang kilang tertentu untuk mencipta produk

Kilang Konkrit (ConcreteFactory): melaksanakan kaedah yang ditakrifkan oleh kilang abstrak untuk melengkapkan penciptaan produk tertentu

Produk Abstrak (Produk): mentakrifkan spesifikasi produk dan menerangkan ciri dan prestasi utama produk

Produk Konkrit (ConcreteProduct): melaksanakan kaedah mentakrifkan produk abstrak, dengan kilang konkrit untuk mencipta produk, kilang konkrit dan konkrit Surat-menyurat satu-satu antara produk

4 Pelaksanaan kod

Pelaksanaan corak kaedah kilang:

/**
 * 抽象工厂:提供具体工厂的共有方法
 */
public interface Product {
    public void show();
}

public class ConcreteProduct1 implements Product {
    @Override
    public void show() {
        System.out.println("具体产品1展示...");
    }
}

public class ConcreateProduct2 implements Product {
    @Override
    public void show() {
        System.out.println("具体产品2展示...");
    }
}


/**
 * 抽象工厂
 */
public interface AbstractFactory {
    public Product createProduct();
}

/**
 * 具体工厂1产生具体产品1
 */
public class ConcreteFactory1 implements AbstractFactory {
    @Override
    public Product createProduct() {
        ConcreteProduct1 concreteProduct1 = new ConcreteProduct1();
        System.out.println("具体工厂1创建具体产品1...");
        return concreteProduct1;
    }
    
public class ConcreteFactory2 implements AbstractFactory {
    @Override
    public Product createProduct() {
        System.out.println("具体工厂2产生具体产品2...");
        return new ConcreateProduct2();
    }
}

Kaedah panggilan:

//获取具体产品1
        Product product = new ConcreteFactory1().createProduct();
        product.show();

        Product product1 = new ConcreteFactory2().createProduct();
        product1.show();

Langkah penggunaan:

    Buat kelas produk abstrak dan tentukan kaedah awam produk
  • Buat kelas produk konkrit (laksanakan produk abstrak antara muka) dan tentukan produk khusus yang dijana
  • Buat kelas kilang abstrak dan tentukan antara muka awam kilang tertentu
  • Buat kilang tertentu kelas dan tentukan kaedah untuk mencipta contoh produk khusus yang sepadan
  • Pemanggil memanggil kaedah kelas kilang khusus untuk mencipta kejadian produk khusus yang berbeza
  • 5. Terokai corak kilang sekali lagi

Selesaikan masalah: Selesaikan Ia menyelesaikan masalah mengubah suai logik kaedah kelas kilang apabila menambah produk baru ke kelas kilang mudah, iaitu pembukaan dan penutupan khas prinsip.

Keluar dari penciptaan produk khusus ke subkelas kelas kilang (kilang khusus Pada masa ini, kelas kilang tidak lagi bertanggungjawab untuk penciptaan semua produk, tetapi memberikan antara muka yang mesti kilang tertentu). melaksanakan, supaya kaedah kilang adalah Apabila menambah produk baru, tidak perlu mengubah logik kelas kilang Sebaliknya, subkelas kilang baru ditambah, yang mematuhi prinsip pembukaan dan penutup.

6. Kelebihan dan kekurangan

Kelebihan:

    Kefleksibelan tinggi Untuk mencipta produk baharu, anda hanya perlu menulis satu lagi kilang yang sepadan kelas
  • Pengguna hanya perlu membimbing nama kilang untuk mendapatkan produk yang mereka inginkan, dan tidak perlu membimbing proses penciptaan produk tertentu
  • Kelemahan:

    Mudah untuk mempunyai terlalu banyak kelas, yang meningkatkan kerumitan
  • Setiap kilang hanya boleh menghasilkan satu jenis Produk. Kelemahan ini boleh diselesaikan dengan menggunakan corak kilang yang abstrak
  • 7 Senario aplikasi

Pelanggan hanya memberi perhatian kepada nama kilang yang mencipta produk. , dan tidak perlu mengetahui nama produk tertentu

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan corak kaedah kilang menggunakan kod Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam