设计模式读书笔记[2]:观察者模式(Observer)

观察者模式(Observer):
      定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。


这就是著名的“你不要找我,我会找你”模式,个人觉得这个模式相对来讲还是比较简单明了的,降低了消息发送者与消息接收者之间的耦合,消息接收由传统的拉模式转换为推模式,这样消息接收者就可以不用轮询是否有消息产生,节省资源。

JDK的AWT/swing就大量使用了观察者模式,比如:

Button btn = new Button("click me");
btn.addActionListener(new ActionListener {
    public void actionPerformed(ActionEvent e) {
        // logic to process btn click event
    }
});

这个Button就是一个消息产生者,而它添加的那个匿名类就是消息接收者,在btn被按下时,它只要调用消息接收者的actionPerformed()方法就行了,而消息接收者什么也不用做,等着被通知就行了。

原文地址:https://www.cnblogs.com/ini_always/p/2472800.html