观察者模式

it2024-03-14  69

观察者模式

观察者模式可以叫做发布订阅模式,其实就是在发布者内部维护一个订阅者列表

定义一个发布者接口

package w02; public interface Publisher { void addObserver(Observer o); void remoObserver(Observer o); void notifyObserver(); }

定义一个观察者模式接口

package w02; public interface Observer { void reciveCallBack(); }

实现Publisher

package w02; import java.util.LinkedList; import java.util.List; public class PublisherImpl implements Publisher { //维护了一个Observer集合 private List<Observer> list; public PublisherImpl(){ this.list = new LinkedList(); } @Override public void addObserver(Observer o) { list.add(o); } @Override public void remoObserver(Observer o) { list.remove(o); } @Override public void notifyObserver() { list.forEach(observer->{ //调用reciveCallBack逻辑 observer.reciveCallBack(); }); } //当stateChange()被调用时,通知Observer public void stateChange(String state){ System.out.println("我要改变状态了--->"+state); //遍历观察者集合 notifyObserver(); } }

实现Observer

package w02; public class Listerner implements Observer { //当Publisher的stateChange()逻辑执行后就会通知我们的ObServer执行reciveCallBack()逻辑 @Override public void reciveCallBack() { System.out.println("Listen to the oublisher state change"); } }
最新回复(0)