欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java觀察者模式和監聽

劉姿婷1年前8瀏覽0評論

Java觀察者模式和監聽器都是用來實現對象間的事件通知機制,可以讓多個模塊之間彼此獨立,降低耦合度。兩者雖然基本思想相似,但實現方式略有不同。

Java觀察者模式是一種設計模式,通過定義一個被觀察者對象和多個觀察者對象來實現事件的通知。被觀察者有一個集合,放置所有注冊的觀察者,當被觀察者狀態改變時,會遍歷這個集合,調用每個觀察者的update()方法來進行通知。以下是一個簡單的例子:

public class Subject {
private List<Observer> observers = new ArrayList<Observer>();
public void attach(Observer observer) {
observers.add(observer);    
}
public void notifyAllObservers() {
for (Observer observer : observers) {
observer.update();
}
}
}
public abstract class Observer {
protected Subject subject;
public abstract void update();
}
public class ConcreteObserver extends Observer {
public ConcreteObserver(Subject subject) {
this.subject = subject;
this.subject.attach(this);
}
public void update() {
System.out.println("Subject state changed.");
}
}
public class Main {
public static void main(String[] args) {
Subject subject = new Subject();
new ConcreteObserver(subject);
subject.notifyAllObservers();
}
}

監聽器是一種廣泛應用于界面編程的事件機制,主要用于按鈕、文本框、滾動條等控件的使用。事件源(如按鈕)會在事件觸發時調用事件監聽器(如按鈕監聽器)中的方法,該方法會在事件發生時做出響應。以下是一個簡單的例子:

public class MainFrame extends JFrame {
private JButton button;
public MainFrame() {
button = new JButton("Click me!");
add(button);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Button clicked.");
}
});
}
}

在使用時,觀察者模式主要用于對象間的事件通知,而監聽器主要用于界面編程的事件響應。兩者各有優缺點,需要根據實際需求進行選擇。