Rumah  >  Artikel  >  Java  >  Apakah senario aplikasi corak reka bentuk dalam rangka kerja Java?

Apakah senario aplikasi corak reka bentuk dalam rangka kerja Java?

WBOY
WBOYasal
2024-06-03 20:05:001033semak imbas

Dalam rangka kerja Java, corak reka bentuk digunakan secara meluas dalam senario berikut: Corak Singleton: mengehadkan bilangan tika kelas kepada satu dan sesuai untuk situasi di mana akses global kepada objek diperlukan. Corak pemerhati: Tentukan hubungan pergantungan satu-ke-banyak Apabila keadaan objek subjek berubah, semua objek pemerhati dimaklumkan dan dikemas kini.

Apakah senario aplikasi corak reka bentuk dalam rangka kerja Java?

Senario aplikasi corak reka bentuk dalam rangka kerja Java

Pengenalan

Corak reka bentuk ialah kaedah standard untuk menggunakan semula amalan dan penyelesaian yang baik dalam pengaturcaraan. Dalam rangka kerja Java, corak reka bentuk digunakan secara meluas Ia menyediakan komponen biasa yang boleh digunakan semula dan memudahkan pembangunan dan penyelenggaraan aplikasi.

Corak huruf tunggal

Corak huruf tunggal mengehadkan bilangan tika kelas kepada satu. Corak ini boleh digunakan apabila akses global kepada objek diperlukan, seperti perkhidmatan log atau sambungan pangkalan data.

Kes praktikal:

// Singleton.java
public class Singleton {
    private static Singleton instance;

    private Singleton() { }

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

// Client.java
public class Client {
    public static void main(String[] args) {
        Singleton singleton1 = Singleton.getInstance();
        Singleton singleton2 = Singleton.getInstance();

        System.out.println(singleton1 == singleton2); // true
    }
}

Corak pemerhati

Corak pemerhati mentakrifkan hubungan kebergantungan satu-ke-banyak Apabila status objek (topik) berubah, ia akan memberitahu dan mengemas kini semua yang bergantung (pemerhati).

Kes praktikal:

// Subject.java
public interface Subject {
    void addObserver(Observer observer);
    void removeObserver(Observer observer);
    void notifyObservers();
}

// ConcreteSubject.java
public class ConcreteSubject implements Subject {
    private List<Observer> observers = new ArrayList<>();

    @Override
    public void addObserver(Observer observer) {
        observers.add(observer);
    }

    @Override
    public void removeObserver(Observer observer) {
        observers.remove(observer);
    }

    @Override
    public void notifyObservers() {
        for (Observer observer : observers) {
            observer.update();
        }
    }
}

// Observer.java
public interface Observer {
    void update();
}

// ConcreteObserver.java
public class ConcreteObserver implements Observer {
    @Override
    public void update() {
        System.out.println("Observer updated!");
    }
}

// Client.java
public class Client {
    public static void main(String[] args) {
        ConcreteSubject subject = new ConcreteSubject();
        ConcreteObserver observer1 = new ConcreteObserver();
        ConcreteObserver observer2 = new ConcreteObserver();

        subject.addObserver(observer1);
        subject.addObserver(observer2);

        subject.notifyObservers();
    }
}

Corak reka bentuk lain yang biasa digunakan:

  • Corak kaedah kilang: Buat antara muka kilang untuk objek
  • corak alternatif atau proksi
  • untuk objek alternatif
  • Corak strategi :
  • Membenarkan pertukaran algoritma tanpa mengubah suai kod pelanggan

Kesimpulan

Corak reka bentuk adalah sebahagian daripada rangka kerja Java. Mereka menyediakan penyelesaian universal yang menjadikan aplikasi lebih mudah untuk dibangunkan, diselenggara dan dilanjutkan. Dengan memahami dan menggunakan corak reka bentuk, pembangun boleh mencipta aplikasi yang lebih mantap dan fleksibel. 🎜

Atas ialah kandungan terperinci Apakah senario aplikasi corak reka bentuk dalam rangka kerja 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