设计模式2：观察者模式，状态模式