Rumah  >  Artikel  >  Java  >  Terokai aplikasi praktikal corak reka bentuk Java: persekitaran terpakai bagi corak tunggal dan corak kilang

Terokai aplikasi praktikal corak reka bentuk Java: persekitaran terpakai bagi corak tunggal dan corak kilang

PHPz
PHPzasal
2023-12-23 14:22:151053semak imbas

Terokai aplikasi praktikal corak reka bentuk Java: persekitaran terpakai bagi corak tunggal dan corak kilang

Pemahaman mendalam tentang corak reka bentuk Java: senario aplikasi corak tunggal dan corak kilang memerlukan contoh kod khusus

Corak reka bentuk ialah metodologi dan ringkasan pengalaman yang telah diamalkan dan digunakan secara meluas dalam pembangunan perisian untuk menyelesaikan masalah tertentu. Dalam pembangunan aplikasi bahasa Java, corak reka bentuk yang biasa digunakan termasuk corak tunggal dan corak kilang. Artikel ini akan meneroka secara mendalam senario aplikasi kedua-dua corak reka bentuk ini dan menggambarkannya dengan contoh kod khusus.

1. Corak Singleton

Corak singleton ialah corak reka bentuk ciptaan yang biasa digunakan Ia memastikan bahawa kelas hanya mempunyai satu contoh dan menyediakan titik akses global. Kaedah pelaksanaan khusus termasuk gaya lelaki malas dan gaya lelaki lapar.

Mod singleton malas sesuai untuk situasi di mana sumber agak besar dan kerap digunakan. Berikut ialah contoh kod corak singleton malas:

public class LazySingleton {
    private static LazySingleton instance;
    
    private LazySingleton() {
        // 私有构造方法
    }
    
    public static LazySingleton getInstance() {
        if (instance == null) {
            synchronized (LazySingleton.class) {
                if (instance == null) {
                    instance = new LazySingleton();
                }
            }
        }
        return instance;
    }
}

Corak singleton yang lapar sesuai untuk situasi di mana sumber agak kecil dan akan digunakan sepanjang masa. Berikut ialah contoh kod corak tunggal gaya Lapar:

public class EagerSingleton {
    private static final EagerSingleton instance = new EagerSingleton();
    
    private EagerSingleton() {
        // 私有构造方法
    }
    
    public static EagerSingleton getInstance() {
        return instance;
    }
}

Senario aplikasi corak tunggal termasuk tetapi tidak terhad kepada situasi berikut:

  1. Objek yang perlu dicipta dan dimusnahkan dengan kerap untuk mengurangkan penggunaan sumber ;
  2. Perlu menjadi objek Akses global untuk memudahkan perkongsian data atau kaedah panggilan antara modul yang berbeza
  3. Perlu mengawal bilangan kejadian kelas, seperti kumpulan benang, kumpulan sambungan pangkalan data, dsb.

2. Corak kilang

Corak kilang ialah corak reka bentuk ciptaan yang biasa digunakan, yang merangkumi proses penciptaan objek dalam kelas kilang dan menyediakan antara muka bersatu kepada dunia luar. Corak kilang termasuk corak kilang biasa, corak kaedah kilang dan corak kilang abstrak.

Corak kilang biasa sesuai untuk menentukan secara dinamik contoh khusus untuk dibuat berdasarkan parameter masuk. Berikut ialah kod contoh corak kilang biasa:

public class ShapeFactory {
    public Shape createShape(String shapeType) {
        if ("circle".equals(shapeType)) {
            return new Circle();
        } else if ("rectangle".equals(shapeType)) {
            return new Rectangle();
        } else if ("triangle".equals(shapeType)) {
            return new Triangle();
        } else {
            return null;
        }
    }
}

Corak kaedah kilang sesuai untuk situasi di mana barisan produk perlu dikembangkan, dan setiap kilang tertentu bertanggungjawab untuk mencipta produk. Berikut ialah contoh kod corak kaedah kilang:

public interface ShapeFactory {
    Shape createShape();
}

public class CircleFactory implements ShapeFactory {
    @Override
    public Shape createShape() {
        return new Circle();
    }
}

public class RectangleFactory implements ShapeFactory {
    @Override
    public Shape createShape() {
        return new Rectangle();
    }
}

public class TriangleFactory implements ShapeFactory {
    @Override
    public Shape createShape() {
        return new Triangle();
    }
}

Corak kilang abstrak sesuai untuk situasi di mana anda perlu mencipta satu set objek produk yang berkaitan atau bergantung. Berikut ialah contoh kod corak kilang abstrak:

public interface AbstractFactory {
    Shape createShape();
    Color createColor();
}

public class CircleFactory implements AbstractFactory {
    @Override
    public Shape createShape() {
        return new Circle();
    }
    
    @Override
    public Color createColor() {
        return new Red();
    }
}

public class RectangleFactory implements AbstractFactory {
    @Override
    public Shape createShape() {
        return new Rectangle();
    }
    
    @Override
    public Color createColor() {
        return new Blue();
    }
}

public class TriangleFactory implements AbstractFactory {
    @Override
    public Shape createShape() {
        return new Triangle();
    }
    
    @Override
    public Color createColor() {
        return new Green();
    }
}

Senario aplikasi corak kilang termasuk tetapi tidak terhad kepada situasi berikut:

  1. Situasi di mana berbilang objek serupa perlu dibuat untuk memudahkan logik kod;
  2. Penciptaan produk tertentu perlu disembunyikan Butiran untuk mengurangkan gandingan
  3. Apabila perlu mengembangkan barisan produk untuk memudahkan penciptaan produk baru.

Ringkasnya, corak tunggal dan corak kilang adalah corak reka bentuk yang biasa digunakan dan digunakan secara meluas dalam pembangunan aplikasi Java. Corak singleton sesuai untuk senario di mana ia perlu memastikan bahawa kelas hanya mempunyai satu contoh, manakala corak kilang sesuai untuk senario di mana proses penciptaan objek perlu dikapsulkan. Dalam aplikasi tertentu, pembangun harus memilih corak reka bentuk yang sesuai berdasarkan keperluan untuk meningkatkan kualiti dan kebolehselenggaraan kod.

Atas ialah kandungan terperinci Terokai aplikasi praktikal corak reka bentuk Java: persekitaran terpakai bagi corak tunggal dan corak kilang. 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