Rumah >Java >javaTutorial >Apakah corak kilang di java

Apakah corak kilang di java

小老鼠
小老鼠asal
2023-12-26 16:14:491352semak imbas

Di Java, corak kilang ialah corak reka bentuk ciptaan yang menyediakan antara muka untuk mencipta objek, tetapi terpulang kepada subkelas untuk menentukan kelas mana untuk dijadikan instantiat. Corak kilang terutamanya merangkumi peranan: 1. Produk abstrak: mentakrifkan antara muka produk, dan kelas produk tertentu akan melaksanakan antara muka ini 2. Produk khusus: melaksanakan antara muka produk abstrak, yang merupakan objek yang dicipta oleh corak kilang; 3. Kilang abstrak: mengisytiharkan Antara muka untuk mencipta produk disediakan, di mana kaedah kilang digunakan untuk membuat instantiat produk.

Apakah corak kilang di java

Sistem pengendalian tutorial ini: sistem Windows 10, komputer Dell G3.

Di Java, Factory Pattern ialah corak reka bentuk ciptaan yang menyediakan antara muka untuk mencipta objek, tetapi subkelas menentukan kelas mana yang hendak dijadikan instantiat. Dengan cara ini, proses instantiasi kelas ditangguhkan kepada subkelasnya, supaya instantiasi kelas boleh ditentukan oleh subkelasnya.

Corak kilang terutamanya merangkumi peranan berikut:

Produk abstrak (Produk): mentakrifkan antara muka produk dan kelas produk tertentu akan melaksanakan antara muka ini.

Produk Konkrit: Ia melaksanakan antara muka produk abstrak dan merupakan objek yang dicipta oleh corak kilang.

Kilang Abstrak (Pencipta): mengisytiharkan antara muka untuk mencipta produk, dan kaedah kilang digunakan untuk membuat instantiate produk.

Pencipta Konkrit: Melaksanakan antara muka kilang yang abstrak dan bertanggungjawab untuk membuat seketika produk tertentu.

Kelebihan utama menggunakan corak kilang adalah untuk memisahkan kod pelanggan daripada pelaksanaan kelas tertentu Pelanggan hanya perlu mengetahui antara muka kilang abstrak dan produk abstrak, tetapi tidak perlu mengetahui butiran pelaksanaan produk tertentu.

Berikut ialah contoh corak kilang yang ringkas:

// 抽象产品
interface Product {
    void display();
}
// 具体产品A
class ConcreteProductA implements Product {
    @Override
    public void display() {
        System.out.println("Product A");
    }
}
// 具体产品B
class ConcreteProductB implements Product {
    @Override
    public void display() {
        System.out.println("Product B");
    }
}
// 抽象工厂
interface Creator {
    Product createProduct();
}
// 具体工厂A,用于创建ProductA
class ConcreteCreatorA implements Creator {
    @Override
    public Product createProduct() {
        return new ConcreteProductA();
    }
}
// 具体工厂B,用于创建ProductB
class ConcreteCreatorB implements Creator {
    @Override
    public Product createProduct() {
        return new ConcreteProductB();
    }
}
// 客户端代码
public class Client {
    public static void main(String[] args) {
        Creator creatorA = new ConcreteCreatorA();
        Product productA = creatorA.createProduct();
        productA.display();  // 输出: Product A
        Creator creatorB = new ConcreteCreatorB();
        Product productB = creatorB.createProduct();
        productB.display();  // 输出: Product B
    }
}


Dalam contoh ini, Produk ialah antara muka produk abstrak A dan Konkrit adalah antara muka produk abstrak dan Konkrit. Creator ialah antara muka kilang yang abstrak, dan ConcreteCreatorA dan ConcreteCreatorB ialah pelaksanaan kilang konkrit. Pelanggan mencipta contoh produk tertentu dengan memanggil kaedah kilang kilang tertentu tanpa membuat instantiating kelas produk tertentu secara langsung. Dengan cara ini, jika anda perlu menukar pelaksanaan produk, anda hanya perlu mengubah suai pelaksanaan kilang tertentu tanpa menjejaskan kod pelanggan.

Atas ialah kandungan terperinci Apakah corak kilang di java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn