Rumah  >  Artikel  >  Java  >  Bagaimanakah corak reka bentuk dilaksanakan dalam rangka kerja java?

Bagaimanakah corak reka bentuk dilaksanakan dalam rangka kerja java?

WBOY
WBOYasal
2024-06-04 10:53:59994semak imbas

Corak reka bentuk digunakan dalam rangka kerja Java untuk menyelesaikan masalah pengaturcaraan biasa, termasuk: Corak strategi: Membolehkan pemilihan dinamik algoritma, memisahkan pelaksanaan algoritma dan objek penggunaan. Corak pemerhati: Tentukan hubungan pergantungan satu-ke-banyak dan maklumkan pemerhati apabila status subjek berubah. Corak kaedah kilang: Menyediakan antara muka untuk mencipta objek produk dan menangguhkan penciptaan pelaksanaan tertentu. Corak Singleton: Pastikan kelas hanya mempunyai satu contoh dan hadkan instantiasi kelas.

Bagaimanakah corak reka bentuk dilaksanakan dalam rangka kerja java?

Corak Reka Bentuk dalam Rangka Kerja Java

Dalam rangka kerja Java, corak reka bentuk memainkan peranan penting untuk menyelesaikan masalah pengaturcaraan biasa. Corak ini meningkatkan fleksibiliti kod, kebolehselenggaraan dan kebolehgunaan semula. Artikel ini akan meneroka beberapa corak reka bentuk popular dalam rangka kerja Java dan menggambarkan pelaksanaannya melalui kes praktikal.

Corak Strategi

Corak Strategi mentakrifkan satu set algoritma yang membolehkan pemilihan algoritma dinamik. Tujuannya adalah untuk memisahkan pelaksanaan algoritma daripada objek menggunakan algoritma.

Pelaksanaan dalam rangka kerja Java: Antara muka

java.util.Comparator ialah contoh corak Strategi. Ia mentakrifkan algoritma untuk operasi perbandingan dan tingkah laku perbandingan sebenar dilaksanakan oleh kelas pembanding tertentu (seperti StringComparator). java.util.Comparator 接口就是一个策略模式的例子。它定义了一个比较操作的算法,而实际比较行为由具体的比较器类(例如 StringComparator)实现。

观察者模式

观察者模式定义了一个一对多的依赖关系,其中一个对象(主题)状态的变化会自动通知多个对象(观察者)。

Java 框架中的实施:

java.util.Observablejava.util.Observer 类实现了观察者模式。Observable 表示主题,而 Observer 表示观察者。当主题的状态发生变化时,它会通知注册的观察者。

工厂方法模式

工厂方法模式提供了一个接口,用于创建产品对象,同时延迟实际创建产品的具体实现。

Java 框架中的实施:

java.sql.DriverManager 类使用工厂方法模式创建数据库连接。它通过调用 getConnection() 方法返回一个 Connection 对象,该方法负责为指定的数据库创建特定的连接。

单例模式

单例模式确保一个类只有一个实例。它通过限制类的实例化来实现这一目标。

Java 框架中的实施:

java.lang.Runtime

Corak Pemerhati

Corak Pemerhati mentakrifkan hubungan pergantungan satu-ke-banyak, di mana perubahan dalam keadaan satu objek (subjek) secara automatik memberitahu berbilang objek (pemerhati).

🎜Pelaksanaan dalam Rangka Kerja Java: Kelas 🎜🎜🎜java.util.Observable dan java.util.Observer melaksanakan corak Observer. Boleh diperhatikan mewakili subjek dan Pemerhati mewakili pemerhati. Apabila keadaan topik berubah, ia memberitahu pemerhati berdaftar. 🎜🎜🎜Corak Kaedah Kilang🎜🎜🎜Corak Kaedah Kilang menyediakan antara muka untuk mencipta objek produk sambil menangguhkan pelaksanaan sebenar mencipta produk. 🎜🎜🎜Pelaksanaan dalam rangka kerja Java: Kelas 🎜🎜🎜java.sql.DriverManager mencipta sambungan pangkalan data menggunakan corak kaedah kilang. Ia mengembalikan objek Connection dengan memanggil kaedah getConnection(), yang bertanggungjawab untuk mencipta sambungan khusus untuk pangkalan data yang ditentukan. 🎜🎜🎜Corak singleton🎜🎜🎜Corak singleton memastikan bahawa kelas hanya mempunyai satu contoh. Ia mencapai matlamat ini dengan mengehadkan instantiasi kelas. 🎜🎜🎜Pelaksanaan dalam Rangka Kerja Java: Kelas 🎜🎜🎜java.lang.Runtime ialah contoh corak Singleton. Ia merangkumi maklumat dan kefungsian mesin maya Java semasa. 🎜🎜🎜Kes praktikal: 🎜🎜🎜Berikut adalah contoh penggunaan corak pemerhati, yang boleh dilaksanakan dalam rangka kerja pembalakan: 🎜
// 主题接口
interface LogSubject {
    void attach(LogObserver observer);
    void detach(LogObserver observer);
    void notifyObservers(LogEntry logEntry);
}

// 具体主题(日志记录器)
class LoggerSubject implements LogSubject {
    private List<LogObserver> observers = new ArrayList<>();

    @Override
    public void attach(LogObserver observer) {
        observers.add(observer);
    }

    @Override
    public void detach(LogObserver observer) {
        observers.remove(observer);
    }

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

    public void log(String message) {
        LogEntry logEntry = new LogEntry(message);
        notifyObservers(logEntry);
    }
}

// 观察者接口
interface LogObserver {
    void update(LogEntry logEntry);
}

// 具体观察者(控制台日志记录器)
class ConsoleLoggerObserver implements LogObserver {
    @Override
    public void update(LogEntry logEntry) {
        System.out.println(logEntry.getMessage());
    }
}

// 使用该模式
LoggerSubject loggerSubject = new LoggerSubject();
ConsoleLoggerObserver consoleLoggerObserver = new ConsoleLoggerObserver();
loggerSubject.attach(consoleLoggerObserver);

loggerSubject.log("Hello World!"); // 将消息打印到控制台

Atas ialah kandungan terperinci Bagaimanakah corak reka bentuk dilaksanakan 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