区别:前者低耦合,每次观察者变更,被观察者要做相应变更处理;后者完全无耦合。
观察者模式
class Observable{@Getter@Setterprivate List<Observer> observerList;void changed(){for (Observer observer : observerList) {// 通知各个观察者 天气变了observer.change();}}}class Observer {private String name;Observer(String name) {this.name = name;}void change() {System.out.println(name + "改变了");}}public static void main(String[] args) {Observer 温度计 = new Observer("温度计");Observer 气压计 = new Observer("气压计");Observer 湿度计 = new Observer("温度计");List<Observer> observers = new ArrayList<>();observers.add(温度计);observers.add(气压计);observers.add(湿度计);Observable observable = new Observable();observable.setObserverList(observers);observable.changed();}
