简单的自定义事件，观察者模式