观察者模式的核心思想是什么?如何实现一对多依赖?