观察者模式
对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
例子,面向对象的观察者模式(完整代码见右边代码区):
public class Test {
public static void main(String[] args) {
Subject cs = new ConcreteSubject();
//添加观察者
cs.attach(new ConcreteObserver());
//subject发生了某事,通知观察者
cs.doSomeThings();
Subject cs = new ConcreteSubject();
cs.attach(() -> {
System.out.println("我观察到subject发生了某事");
});
//subject发生了某事,通知观察者
cs.doSomeThings();
}
}
使用Lambda表达式改写:可以去掉具体的观察者。
public class Test {
public static void main(String[] args) {
Subject cs = new ConcreteSubject();
cs.attach(() -> {
System.out.println("我观察到subject发生了某事");
});
//subject发生了某事,通知观察者
cs.doSomeThings();
}
}
输出结果: