您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
Java中的观察者模式和事件监听器都是设计模式,用于实现对象之间的松耦合通信。尽管它们有相似之处,但它们之间还是存在一些关键区别:
目的:
实现方式:
用途:
代码示例:
public interface Observer {
void update(String message);
}
public class ConcreteObserver implements Observer {
private String name;
public ConcreteObserver(String name) {
this.name = name;
}
@Override
public void update(String message) {
System.out.println(name + " received message: " + message);
}
}
public class Subject {
private List<Observer> observers = new ArrayList<>();
private String message;
public void addObserver(Observer observer) {
observers.add(observer);
}
public void removeObserver(Observer observer) {
observers.remove(observer);
}
public void setMessage(String message) {
this.message = message;
notifyObservers();
}
private void notifyObservers() {
for (Observer observer : observers) {
observer.update(message);
}
}
}
public interface ActionListener {
void actionPerformed(ActionEvent e);
}
public class Button {
private List<ActionListener> listeners = new ArrayList<>();
public void addActionListener(ActionListener listener) {
listeners.add(listener);
}
public void removeActionListener(ActionListener listener) {
listeners.remove(listener);
}
public void click() {
ActionEvent event = new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "click");
for (ActionListener listener : listeners) {
listener.actionPerformed(event);
}
}
}
总之,观察者模式和事件监听器都是实现对象间松耦合通信的方法,但它们的实现方式和用途有所不同。观察者模式更侧重于对象间的依赖关系和状态同步,而事件监听器更侧重于处理特定类型的事件。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。