之前写好的观察者模式