观察者模式 Observer Pattern

xiaoxiao2021-02-28  29

观察者模式是指,当一个类状态发生变化时,会通知所有的观察者类,主要用于有数据变化或者是状态变化的场景下,比如listerner监听器,一般采用异步的方式。

观察类接口:

public interface Observer { void update(String name); }

观察者实现:

public class ConsoleObserver implements Observer{ @Override public void update(String name) { System.out.println("console:新名字是:"+name); } } public class LogObserver implements Observer { @Override public void update(String name) { System.out.println("log:新名字是:"+name); } }

被观察者类:

public class Subject { private List<Observer> list = new ArrayList<>(); private String name; public void addObserver(Observer obj){ list.add(obj); } public String getName() { return name; } public void setName(String name) { this.name = name; // 通知所有的观察者对象,并且把新名字传入 notifyAllObservers(this.name); } private void notifyAllObservers(String name) { for (Observer obj : list) { obj.update(name); } } }

测试类:

public class Test { public static void main(String[] args) { Subject sub = new Subject(); sub.addObserver(new ConsoleObserver()); sub.addObserver(new LogObserver()); sub.setName("123"); } }
转载请注明原文地址: https://www.6miu.com/read-2630347.html

最新回复(0)