c# 开发网站开发,有哪些可以做网站的平台,网页设计师的发展前景,html常用标签观察者模式用于定义对象间的一种一对多的依赖关系#xff0c;使得当一个对象状态变化时#xff0c;其所有依赖对象都会收到通知并自动更新
/*** 行为型模式--观察者模式* 观察者模式用于定义对象间的一种一对多的依赖关系#xff0c;使得当一个对象状态变化时#xff0c;其…观察者模式用于定义对象间的一种一对多的依赖关系使得当一个对象状态变化时其所有依赖对象都会收到通知并自动更新
/*** 行为型模式--观察者模式* 观察者模式用于定义对象间的一种一对多的依赖关系使得当一个对象状态变化时其所有依赖对象都会收到通知并自动更新*/
public class ObserverMode {// 观察者接口interface Observer {void update();}// 主题接口interface Subject {void registerObserver(Observer observer);void removeObserver(Observer observer);void notifyObservers();}// 具体主题类static class ConcreteSubject implements Subject {private final java.util.ListObserver observers new java.util.ArrayList();public void registerObserver(Observer observer) {observers.add(observer);}public void removeObserver(Observer observer) {observers.remove(observer);}public void notifyObservers() {for (Observer observer : observers) {observer.update();}}}// 具体观察者类static class ConcreteObserver implements Observer {public void update() {System.out.println(Received message: Observer is notifyObservers);}}// ConcreteSubject是一个具体的主题类它实现了Subject接口并包含了一组观察者。// ConcreteObserver是一个具体的观察者类它实现了Observer接口。// 通过观察者模式我们可以实现对象间的解耦当主题状态发生变化时观察者会收到通知并进行相应的更新// 使用观察者模式public static void main(String[] args) {ConcreteSubject subject new ConcreteSubject();Observer observer new ConcreteObserver();subject.registerObserver(observer);subject.notifyObservers();subject.removeObserver(observer);}
}