观察者模式框架