重写observer